commit a6390b150840bc7c085fffd242e251a83d9955e8 Author: lanyi Date: Tue Dec 28 10:06:46 2021 +0100 上传文件 diff --git a/basicw3d.fx b/basicw3d.fx new file mode 100644 index 0000000..abe4128 --- /dev/null +++ b/basicw3d.fx @@ -0,0 +1,3473 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(vs_2_0, c2) : register(vs_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient : register(vs_2_0, c11) : register(vs_3_0, c14) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c12) : register(vs_3_0, c15) = { 1, 1, 1 }; +float3 ColorSpecular : register(vs_2_0, c13) : register(vs_3_0, c16) ; +float Shininess : register(vs_2_0, c14) : register(vs_3_0, c17) = { 1 }; +float3 ColorEmissive : register(vs_2_0, c15) : register(vs_3_0, c18) ; +texture Texture_0 ; // 28 +sampler2D Texture_0Sampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 30 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c16) : register(vs_3_0, c19) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 39 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 46 +sampler2D CloudTextureSampler : register(ps_2_0, s3) : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 50 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r3, r0.w, c6 + temp4.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r5 + temp3.w = dot(temp0.xyz, temp5.xyz); + // slt r4.x, -r2.w, r2.w + temp4.x = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.x + temp2.w = temp2.w * temp4.x; + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.x, r4.x, r4.y + temp4.x = temp4.x * temp4.y; + // pow r4.y, r3.w, c17.x + temp4.y = pow(temp3.w, Shininess.x); + // mul r3.w, r4.x, r4.y + temp3.w = temp4.x * temp4.y; + // mul r4.xyz, r2.w, c5 + temp4.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4, c15 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r3, r0.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r5.w, -r3.w, r3.w + temp5.w = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.w + temp3.w = temp3.w * temp5.w; + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.w, r5.w, r6.x + temp5.w = temp5.w * temp6.x; + // pow r6.x, r4.w, c17.x + temp6.x = pow(temp4.w, Shininess.x); + // mul r4.w, r5.w, r6.x + temp4.w = temp5.w * temp6.x; + // mad r4.xyz, c5[a0.x], r3.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r3.xyz, -r1, c90 + temp3.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r1, c93 + temp4.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r4 + temp0.w = dot(temp0.xyz, temp4.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r4.xyz, r6, r0.w + temp4.xyz = temp6.xyz * temp0.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r1, c96 + temp4.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r4 + temp0.x = dot(temp0.xyz, temp4.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c13.x, r0, r3 + temp0.xyz = expr13.xxx * temp0.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r0.xyz, r0, c15, r3 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mul o1.xyz, r0, c0.z + o.texcoord1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, c1.x, v3.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r0.xyz, r5, c16 + temp0.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c0.z + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r1.z, c117.zwzw + temp2.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r1, c117, -r2 + temp2.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r1.xy, r1.yxzw, c19.wzzw + temp1.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r1.xyxy, c19.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o5.xyz, r0, r1.w, c3.xxyw + o.texcoord3.xyz = temp0.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r1.w, v4.w, c129[a0.x].w + temp1.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v4 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mad r4.xyz, r3, r2.w, c6 + temp4.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.x, r1, r5 + temp4.x = dot(temp1.xyz, temp5.xyz); + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r4.y + temp3.w = temp3.w * temp4.y; + // slt r4.z, -r4.x, r4.x + temp4.z = (-temp4.x < temp4.x) ? 1 : 0; + // mul r4.y, r4.y, r4.z + temp4.y = temp4.y * temp4.z; + // pow r5.x, r4.x, c17.x + temp5.x = pow(temp4.x, Shininess.x); + // mul r4.x, r4.y, r5.x + temp4.x = temp4.y * temp5.x; + // mul r4.yzw, r3.w, c5.xxyz + temp4.yzw = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r4.x, c5 + temp5.xyz = temp4.xxx * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4.yzww, c15 + temp4.xyz = temp4.yzw * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r3, r2.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r7 + temp5.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // slt r6.y, -r5.w, r5.w + temp6.y = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r5.w, c17.x + temp6.y = pow(temp5.w, Shininess.x); + // mul r5.w, r6.x, r6.y + temp5.w = temp6.x * temp6.y; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r5.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp5.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c89 + temp6.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r6, r2.w + temp3.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r0, c93 + temp4.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c92 + temp6.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r0, c96 + temp4.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c95 + temp6.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r4 + temp1.x = dot(temp1.xyz, temp4.xyz); + // max r1.x, r1.x, c3.x + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c13.x, r1, r3 + temp1.xyz = expr13.xxx * temp1.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r1.xyz, r1, c15, r3 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r1.xyz, r2, r1 + temp1.xyz = temp2.xyz * temp1.xyz; + // mul o1.xyz, r1, c0.z + o.texcoord1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r1.xyz, r5, c16 + temp1.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c19.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c19.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o5.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // mul r1.w, r1.w, v7.w + temp1.w = temp1.w * i.color.w; + // mul r2.xyz, c2, v7 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mad r4.xyz, r3, r2.w, c6 + temp4.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.x, r1, r5 + temp4.x = dot(temp1.xyz, temp5.xyz); + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r4.y + temp3.w = temp3.w * temp4.y; + // slt r4.z, -r4.x, r4.x + temp4.z = (-temp4.x < temp4.x) ? 1 : 0; + // mul r4.y, r4.y, r4.z + temp4.y = temp4.y * temp4.z; + // pow r5.x, r4.x, c17.x + temp5.x = pow(temp4.x, Shininess.x); + // mul r4.x, r4.y, r5.x + temp4.x = temp4.y * temp5.x; + // mul r4.yzw, r3.w, c5.xxyz + temp4.yzw = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r4.x, c5 + temp5.xyz = temp4.xxx * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4.yzww, c15 + temp4.xyz = temp4.yzw * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r3, r2.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r7 + temp5.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // slt r6.y, -r5.w, r5.w + temp6.y = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r5.w, c17.x + temp6.y = pow(temp5.w, Shininess.x); + // mul r5.w, r6.x, r6.y + temp5.w = temp6.x * temp6.y; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r5.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp5.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c89 + temp6.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r6, r2.w + temp3.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r0, c93 + temp4.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c92 + temp6.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r0, c96 + temp4.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c95 + temp6.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r4 + temp1.x = dot(temp1.xyz, temp4.xyz); + // max r1.x, r1.x, c3.x + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c13.x, r1, r3 + temp1.xyz = expr13.xxx * temp1.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r1.xyz, r1, c15, r3 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r1.xyz, r2, r1 + temp1.xyz = temp2.xyz * temp1.xyz; + // mul o1.xyz, r1, c0.z + o.texcoord1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r1.xyz, r5, c16 + temp1.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c19.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c19.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o5.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 55 + compile vs_3_0 VS_Array_Shader_1(), // 56 + compile vs_3_0 VS_Array_Shader_2(), // 57 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord5.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[6] = { + compile ps_3_0 PS_Array_Shader_0(), // 58 + compile ps_3_0 PS_Array_Shader_1(), // 59 + compile ps_3_0 PS_Array_Shader_2(), // 60 + compile ps_3_0 PS_Array_Shader_3(), // 61 + compile ps_3_0 PS_Array_Shader_4(), // 62 + compile ps_3_0 PS_Array_Shader_5(), // 63 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 color1 : COLOR1; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float3 temp5, temp7; + float addr0; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0, r7 + temp3.y = dot(temp0.xyz, temp7.xyz); + // dp3 r3.x, r0, c6[a0.x] + temp3.x = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v3, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // add r3.xy, r1.yxzw, c16.wzzw + temp3.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r3.xyxy, c16.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r3.x, r0, c6 + temp3.x = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r0.w, c6 + temp2.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0, r5 + temp3.y = dot(temp0.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r0, r3 + temp0 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.xyw, r0.y, c5.xyzz + temp0.xyw = temp0.yyy * DirectionalLight[0].Color.xyz; + // mul r0.xyw, r0, c12.xyzz + temp0.xyw = temp0.xyw * ColorDiffuse.xyz; + // mul r0.xyw, r4.xyzz, r0 + temp0.xyw = temp4.xyz * temp0.xyw; + // mul oT4.xyz, r0.xyww, c0.z + o.texcoord4 = temp0.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xyz, r0.z, c5 + temp0.xyz = temp0.zzz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, c13 + temp0.xyz = temp0.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r0, c0.z + o.texcoord5 = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add oT2.xy, r0, c118 + o.texcoord2.xy = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT3.xyz, r0.yzww, r2.x, c3.xxyw + o.texcoord3.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r0.x + o.texcoord3.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mul oT1.w, v3.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v4, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // add r3.xy, r0.yxzw, c16.wzzw + temp3.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r3.xyxy, c16.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c12.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r4.xyzz, r1 + temp1.xyw = temp4.xyz * temp1.xyw; + // mul oT4.xyz, r1.xyww, c3.z + o.texcoord4 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c13 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r1, c3.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.x + temp2.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r2.x, c0.xxyw + o.texcoord3.xyz = temp1.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 position : POSITION; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float2 addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v7.w + temp0.x = temp0.x * i.color.w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // add r2.xy, r0.yxzw, c16.wzzw + temp2.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r2.xyxy, c16.xyyx + o.texcoord2.zw = temp2.xy * Shroud.ScaleUV_OffsetUV.yx; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add oT2.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v7, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xzw, r1.z, c5.xyyz + temp1.xzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xzw, r1, c13.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r1.xzww, c3.z + o.texcoord5 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.z, r1.x + temp1.z = 1.0f / temp1.x; + // mad oT3.xyz, r2, r1.z, c0.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.zzz + float3(0, 0, -0.0015); + // mul r1.yzw, r1.y, c5.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.yzw, r1, c12.xxyz + temp1.yzw = temp1.yzw * ColorDiffuse.xyz; + // mul r1.yzw, r4.xxyz, r1 + temp1.yzw = temp4.xyz * temp1.yzw; + // mul oT4.xyz, r1.yzww, c3.z + o.texcoord4 = temp1.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 67 + compile vs_2_0 VS_M_Array_Shader_1(), // 68 + compile vs_2_0 VS_M_Array_Shader_2(), // 69 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t5 + temp3.xyz = i.texcoord5.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2, -1, 1, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t5 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[6] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 70 + compile ps_2_0 PS_M_Array_Shader_1(), // 71 + compile ps_2_0 PS_M_Array_Shader_2(), // 72 + compile ps_2_0 PS_M_Array_Shader_3(), // 73 + compile ps_2_0 PS_M_Array_Shader_4(), // 74 + compile ps_2_0 PS_M_Array_Shader_5(), // 75 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 82 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 83 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 84 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mad r0, v0.x, r0.w, c0.x + temp0 = i.color.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 85 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 86 +}; +// _CreateShadowMap_Expression24 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression24() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c0.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt c0.x, r1.x, r0.x + expr0.x = temp1.x < temp0.x; + return expr0; +} + +// _CreateShadowMap_Expression25 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_L_Expression26 Expression_2_0 Has PRES False +float _Default_L_Expression26() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_L_Expression27 Expression_2_0 Has PRES False +float _Default_L_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression28 Expression_2_0 Has PRES False +float _Default_M_Expression28() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_M_Expression29 Expression_2_0 Has PRES False +float _Default_M_Expression29() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression30 Expression_2_0 Has PRES False +float Default_Expression30() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression31 Expression_2_0 Has PRES False +float Default_Expression31() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression31()]; // 65 + PixelShader = PS_Array[Default_Expression30()]; // 66 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression29()]; // 77 + PixelShader = PS_M_Array[_Default_M_Expression28()]; // 78 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression27()]; // 80 + PixelShader = PS_M_Array[_Default_L_Expression26()]; // 81 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression25()]; // 88 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression24()]; // 89 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/basicw3dholographic.fx b/basicw3dholographic.fx new file mode 100644 index 0000000..cdea1e0 --- /dev/null +++ b/basicw3dholographic.fx @@ -0,0 +1,1942 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient = { 1, 1, 1 }; +float3 ColorDiffuse = { 1, 1, 1 }; +float3 ColorSpecular ; +float Shininess = { 1 }; +float3 ColorEmissive ; +texture Texture_0 ; // 28 +sampler2D Texture_0Sampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 30 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 39 +sampler2D ShroudTextureSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 46 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 50 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + VS_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 1, 0, 0.1, 0 + // def c2, 0.7071161, -0.7070975, 0.7070975, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5.x + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3_sat r1.x, r1, r3 + temp1.x = saturate(dot(temp1.xyz, temp3.xyz)); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add o5.x, -r1.x, c0.x + o.texcoord3 = -temp1.x + float4(1, 1, 1, 1); + // mul o1.w, c1.x, v2.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r1, r0.xxyy, c2.xyzx + temp1 = temp0.xxyy * float4(0.70711607, -0.7070975, 0.7070975, 0.70711607); + // add r1.xy, r1.zwzw, r1 + temp1.xy = temp1.zw + temp1.xy; + // mul o3.xy, r1, c0.z + o.texcoord = temp1 * float4(0.1, 0.1, 0.1, 0.1); + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add r0.xy, r0.yxzw, c11.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // add o4.xy, r0.zwzw, c118 + o.texcoord2.xy = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mul o4.zw, r0.xyxy, c11.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o1.xyz, c0.zxzw + o.texcoord1.xyz = float3(0.1, 1, 0.1); + // mov o2, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + float3 temp3; + // def c0, 0.7071161, 0.7070975, -0.7070975, 0 + // def c2, 1, -1, 0.1, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5.x + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r0.w, v3.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3_sat r1.x, r1, r3 + temp1.x = saturate(dot(temp1.xyz, temp3.xyz)); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add o5.x, -r1.x, c2.x + o.texcoord3 = -temp1.x + float4(1, 1, 1, 1); + // mul o1.w, r0.w, c1.x + o.texcoord1.w = temp0.w * OpacityOverride.x; + // mul r1, r0.xyxy, c0.xyzx + temp1 = temp0.xyxy * float4(0.70711607, 0.7070975, -0.7070975, 0.70711607); + // add r1.xy, r1.ywzw, r1.xzzw + temp1.xy = temp1.yw + temp1.xz; + // mul o3.xy, r1, c2.z + o.texcoord = temp1 * float4(0.1, 0.1, 0.1, 0.1); + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add r0.xy, r0.yxzw, c11.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // add o4.xy, r0.zwzw, c118 + o.texcoord2.xy = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mul o4.zw, r0.xyxy, c11.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o1.xyz, c2.zxzw + o.texcoord1.xyz = float3(0.1, 1, 0.1); + // mov o2, c2.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES False +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3; + float2 addr0; + // def c0, 0.7071161, 0.7070975, -0.7070975, 0 + // def c2, 1, -1, 0.1, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5.x + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v5.zxyy, c128[a0.y].yzxy + temp1 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r1, c128[a0.y].wwwx, v5.xyzx, r1 + temp1 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp1; + // mul r2, v5.yzxz, c128[a0.y].zxyz + temp2 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.y] + temp2.xyz = temp1.www * WorldBones[0 + addr0.y].xyz; + // mad r2.xyz, c128[a0.y].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.y].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.y].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.y].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.y].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.y].zxy * -temp1.yzx + temp2.xyz; + // mul r1.xyz, r1, v1.y + temp1.xyz = temp1.xyz * i.blendweight.yyy; + // mul r2, v4.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v4.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v4.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // mad r1.xyz, r2, v1.x, r1 + temp1.xyz = temp2.xyz * i.blendweight.xxx + temp1.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3_sat r0.w, r1, r3 + temp0.w = saturate(dot(temp1.xyz, temp3.xyz)); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // add o5.x, -r0.w, c2.x + o.texcoord3 = -temp0.w + float4(1, 1, 1, 1); + // mul r0.w, v1.y, c129[a0.y].w + temp0.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.w, c129[a0.x].w, v1.x, r0.w + temp0.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.w; + // mul r0.w, r0.w, v6.w + temp0.w = temp0.w * i.color.w; + // mul o1.w, r0.w, c1.x + o.texcoord1.w = temp0.w * OpacityOverride.x; + // mul r1, r0.xyxy, c0.xyzx + temp1 = temp0.xyxy * float4(0.70711607, 0.7070975, -0.7070975, 0.70711607); + // add r1.xy, r1.ywzw, r1.xzzw + temp1.xy = temp1.yw + temp1.xz; + // mul o3.xy, r1, c2.z + o.texcoord = temp1 * float4(0.1, 0.1, 0.1, 0.1); + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add r0.xy, r0.yxzw, c11.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // add o4.xy, r0.zwzw, c118 + o.texcoord2.xy = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mul o4.zw, r0.xyxy, c11.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o1.xyz, c2.zxzw + o.texcoord1.xyz = float3(0.1, 1, 0.1); + // mov o2, c2.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 55 + compile vs_3_0 VS_Array_Shader_1(), // 56 + compile vs_3_0 VS_Array_Shader_2(), // 57 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2.2, 0.25, 2, 0.5 + // dcl_texcoord1 v0 + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord3 v3.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // mad_sat r0.x, r1.x, c0.z, c0.w + temp0.x = saturate(temp1.x * float1(2) + float1(0.5)); + // mul oC0.w, r0.x, v0.w + out_color.w = temp0.x * i.texcoord1.w; + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.x, c0.y, v3.x + temp0.x = float1(0.25) + i.texcoord3.x; + // mad r0.xyz, v0, r0.x, r1 + temp0.xyz = i.texcoord1.xyz * temp0.xxx + temp1.xyz; + // texld r1, v2.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2.2, 0.25, 2, 0.5 + // dcl_texcoord1 v0 + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord3 v3.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // mad_sat r0.x, r1.x, c0.z, c0.w + temp0.x = saturate(temp1.x * float1(2) + float1(0.5)); + // mul oC0.w, r0.x, v0.w + out_color.w = temp0.x * i.texcoord1.w; + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.x, c0.y, v3.x + temp0.x = float1(0.25) + i.texcoord3.x; + // mad r0.xyz, v0, r0.x, r1 + temp0.xyz = i.texcoord1.xyz * temp0.xxx + temp1.xyz; + // texld r1, v2.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2.2, 0.25, 2, 0.5 + // dcl_texcoord1 v0 + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord3 v3.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // mad_sat r0.x, r1.x, c0.z, c0.w + temp0.x = saturate(temp1.x * float1(2) + float1(0.5)); + // mul oC0.w, r0.x, v0.w + out_color.w = temp0.x * i.texcoord1.w; + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.x, c0.y, v3.x + temp0.x = float1(0.25) + i.texcoord3.x; + // mad r0.xyz, v0, r0.x, r1 + temp0.xyz = i.texcoord1.xyz * temp0.xxx + temp1.xyz; + // texld r1, v2.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2.2, 0.25, 2, 0.5 + // dcl_texcoord1 v0 + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord3 v3.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // mad_sat r0.x, r1.x, c0.z, c0.w + temp0.x = saturate(temp1.x * float1(2) + float1(0.5)); + // mul oC0.w, r0.x, v0.w + out_color.w = temp0.x * i.texcoord1.w; + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.x, c0.y, v3.x + temp0.x = float1(0.25) + i.texcoord3.x; + // mad r0.xyz, v0, r0.x, r1 + temp0.xyz = i.texcoord1.xyz * temp0.xxx + temp1.xyz; + // texld r1, v2.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2.2, 0.25, 2, 0.5 + // dcl_texcoord1 v0 + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord3 v3.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // mad_sat r0.x, r1.x, c0.z, c0.w + temp0.x = saturate(temp1.x * float1(2) + float1(0.5)); + // mul oC0.w, r0.x, v0.w + out_color.w = temp0.x * i.texcoord1.w; + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.x, c0.y, v3.x + temp0.x = float1(0.25) + i.texcoord3.x; + // mad r0.xyz, v0, r0.x, r1 + temp0.xyz = i.texcoord1.xyz * temp0.xxx + temp1.xyz; + // texld r1, v2.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2.2, 0.25, 2, 0.5 + // dcl_texcoord1 v0 + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord3 v3.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // mad_sat r0.x, r1.x, c0.z, c0.w + temp0.x = saturate(temp1.x * float1(2) + float1(0.5)); + // mul oC0.w, r0.x, v0.w + out_color.w = temp0.x * i.texcoord1.w; + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.x, c0.y, v3.x + temp0.x = float1(0.25) + i.texcoord3.x; + // mad r0.xyz, v0, r0.x, r1 + temp0.xyz = i.texcoord1.xyz * temp0.xxx + temp1.xyz; + // texld r1, v2.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[6] = { + compile ps_3_0 PS_Array_Shader_0(), // 58 + compile ps_3_0 PS_Array_Shader_1(), // 59 + compile ps_3_0 PS_Array_Shader_2(), // 60 + compile ps_3_0 PS_Array_Shader_3(), // 61 + compile ps_3_0 PS_Array_Shader_4(), // 62 + compile ps_3_0 PS_Array_Shader_5(), // 63 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 color1 : COLOR1; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 1, 0, 0.1, 0 + // def c2, 0.7071161, -0.7070975, 0.7070975, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // min r1.x, r1.x, c0.x + temp1.x = min(temp1.x, float1(1)); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add oT3.x, -r1.x, c0.x + o.texcoord3 = -temp1.x + float4(1, 1, 1, 1); + // mul oT1.w, v2.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mul r1, r0.xxyy, c2.xyzx + temp1 = temp0.xxyy * float4(0.70711607, -0.7070975, 0.7070975, 0.70711607); + // add r1.xy, r1.zwzw, r1 + temp1.xy = temp1.zw + temp1.xy; + // mul oT0.xy, r1, c0.z + o.texcoord = temp1 * float4(0.1, 0.1, 0.1, 0.1); + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add r0.xy, r0.yxzw, c11.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // add oT2.xy, r0.zwzw, c118 + o.texcoord2.xy = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mul oT2.zw, r0.xyxy, c11.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov oT1.xyz, c0.zxzw + o.texcoord1.xyz = float3(0.1, 1, 0.1); + // mov oD1, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 color1 : COLOR1; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + float3 temp3; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.7071161, 0.7070975, -0.7070975, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r0.w, v3.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // min r1.x, r1.x, c0.x + temp1.x = min(temp1.x, float1(1)); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add oT3.x, -r1.x, c0.x + o.texcoord3 = -temp1.x + float4(1, 1, 1, 1); + // mul oT1.w, r0.w, c1.x + o.texcoord1.w = temp0.w * OpacityOverride.x; + // mul r1, r0.xyxy, c2.xyzx + temp1 = temp0.xyxy * float4(0.70711607, 0.7070975, -0.7070975, 0.70711607); + // add r1.xy, r1.ywzw, r1.xzzw + temp1.xy = temp1.yw + temp1.xz; + // mul oT0.xy, r1, c0.w + o.texcoord = temp1 * float4(0.1, 0.1, 0.1, 0.1); + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add r0.xy, r0.yxzw, c11.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // add oT2.xy, r0.zwzw, c118 + o.texcoord2.xy = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mul oT2.zw, r0.xyxy, c11.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov oT1.xyz, c0.wxww + o.texcoord1.xyz = float3(0.1, 1, 0.1); + // mov oD1, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 color1 : COLOR1; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3; + float2 addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.7071161, 0.7070975, -0.7070975, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_color v6 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v5.zxyy, c128[a0.y].yzxy + temp1 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r1, c128[a0.y].wwwx, v5.xyzx, r1 + temp1 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp1; + // mul r2, v5.yzxz, c128[a0.y].zxyz + temp2 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.y] + temp2.xyz = temp1.www * WorldBones[0 + addr0.y].xyz; + // mad r2.xyz, c128[a0.y].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.y].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.y].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.y].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.y].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.y].zxy * -temp1.yzx + temp2.xyz; + // mul r1.xyz, r1, v1.y + temp1.xyz = temp1.xyz * i.blendweight.yyy; + // mul r2, v4.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v4.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v4.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // mad r1.xyz, r2, v1.x, r1 + temp1.xyz = temp2.xyz * i.blendweight.xxx + temp1.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r1, r3 + temp0.w = dot(temp1.xyz, temp3.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // min r0.w, r0.w, c0.x + temp0.w = min(temp0.w, float1(1)); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // add oT3.x, -r0.w, c0.x + o.texcoord3 = -temp0.w + float4(1, 1, 1, 1); + // mul r0.w, v1.y, c129[a0.y].w + temp0.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.w, c129[a0.x].w, v1.x, r0.w + temp0.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.w; + // mul r0.w, r0.w, v6.w + temp0.w = temp0.w * i.color.w; + // mul oT1.w, r0.w, c1.x + o.texcoord1.w = temp0.w * OpacityOverride.x; + // mul r1, r0.xyxy, c2.xyzx + temp1 = temp0.xyxy * float4(0.70711607, 0.7070975, -0.7070975, 0.70711607); + // add r1.xy, r1.ywzw, r1.xzzw + temp1.xy = temp1.yw + temp1.xz; + // mul oT0.xy, r1, c0.w + o.texcoord = temp1 * float4(0.1, 0.1, 0.1, 0.1); + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add r0.xy, r0.yxzw, c11.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // add oT2.xy, r0.zwzw, c118 + o.texcoord2.xy = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mul oT2.zw, r0.xyxy, c11.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov oT1.xyz, c0.wxww + o.texcoord1.xyz = float3(0.1, 1, 0.1); + // mov oD1, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 67 + compile vs_2_0 VS_M_Array_Shader_1(), // 68 + compile vs_2_0 VS_M_Array_Shader_2(), // 69 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[6] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 70 + compile ps_2_0 PS_M_Array_Shader_1(), // 71 + compile ps_2_0 PS_M_Array_Shader_2(), // 72 + compile ps_2_0 PS_M_Array_Shader_3(), // 73 + compile ps_2_0 PS_M_Array_Shader_4(), // 74 + compile ps_2_0 PS_M_Array_Shader_5(), // 75 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 82 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 83 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 84 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mad r0, v0.x, r0.w, c0.x + temp0 = i.color.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 85 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 86 +}; +// _Default_L_Expression24 Expression_2_0 Has PRES False +float _Default_L_Expression24() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_L_Expression25 Expression_2_0 Has PRES False +float _Default_L_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression26 Expression_2_0 Has PRES False +float _Default_M_Expression26() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_M_Expression27 Expression_2_0 Has PRES False +float _Default_M_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression29 Expression_2_0 Has PRES False +float Default_Expression29() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression29()]; // 65 + PixelShader = PS_Array[Default_Expression28()]; // 66 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression27()]; // 77 + PixelShader = PS_M_Array[_Default_M_Expression26()]; // 78 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression25()]; // 80 + PixelShader = PS_M_Array[_Default_L_Expression24()]; // 81 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + diff --git a/basicw3dsupporthdr.fx b/basicw3dsupporthdr.fx new file mode 100644 index 0000000..7142989 --- /dev/null +++ b/basicw3dsupporthdr.fx @@ -0,0 +1,3486 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(vs_2_0, c2) : register(vs_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient : register(vs_2_0, c11) : register(vs_3_0, c14) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c12) : register(vs_3_0, c15) = { 1, 1, 1 }; +float3 ColorSpecular : register(vs_2_0, c13) : register(vs_3_0, c16) ; +float Shininess : register(vs_2_0, c14) : register(vs_3_0, c17) = { 1 }; +float3 ColorEmissive : register(vs_2_0, c15) : register(vs_3_0, c18) ; +float HDRMultiplier : register(vs_2_0, c16) : register(vs_3_0, c19) = { 1 }; +texture Texture_0 ; // 30 +sampler2D Texture_0Sampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 32 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c17) : register(vs_3_0, c20) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 41 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 48 +sampler2D CloudTextureSampler : register(ps_2_0, s3) : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 52 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r3, r0.w, c6 + temp4.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r5 + temp3.w = dot(temp0.xyz, temp5.xyz); + // slt r4.x, -r2.w, r2.w + temp4.x = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.x + temp2.w = temp2.w * temp4.x; + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.x, r4.x, r4.y + temp4.x = temp4.x * temp4.y; + // pow r4.y, r3.w, c17.x + temp4.y = pow(temp3.w, Shininess.x); + // mul r3.w, r4.x, r4.y + temp3.w = temp4.x * temp4.y; + // mul r4.xyz, r2.w, c5 + temp4.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4, c15 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r3, r0.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r5.w, -r3.w, r3.w + temp5.w = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.w + temp3.w = temp3.w * temp5.w; + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.w, r5.w, r6.x + temp5.w = temp5.w * temp6.x; + // pow r6.x, r4.w, c17.x + temp6.x = pow(temp4.w, Shininess.x); + // mul r4.w, r5.w, r6.x + temp4.w = temp5.w * temp6.x; + // mad r4.xyz, c5[a0.x], r3.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r3.xyz, -r1, c90 + temp3.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r1, c93 + temp4.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r4 + temp0.w = dot(temp0.xyz, temp4.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r4.xyz, r6, r0.w + temp4.xyz = temp6.xyz * temp0.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r1, c96 + temp4.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r4 + temp0.x = dot(temp0.xyz, temp4.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c13.x, r0, r3 + temp0.xyz = expr13.xxx * temp0.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r0.xyz, r0, c15, r3 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mul r0.xyz, r0, c19.x + temp0.xyz = temp0.xyz * HDRMultiplier.xxx; + // mul o1.xyz, r0, c0.z + o.texcoord1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, c1.x, v3.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r0.xyz, r5, c16 + temp0.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c0.z + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r1.z, c117.zwzw + temp2.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r1, c117, -r2 + temp2.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r1.xy, r1.yxzw, c20.wzzw + temp1.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r1.xyxy, c20.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o5.xyz, r0, r1.w, c3.xxyw + o.texcoord3.xyz = temp0.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r1.w, v4.w, c129[a0.x].w + temp1.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v4 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mad r4.xyz, r3, r2.w, c6 + temp4.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.x, r1, r5 + temp4.x = dot(temp1.xyz, temp5.xyz); + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r4.y + temp3.w = temp3.w * temp4.y; + // slt r4.z, -r4.x, r4.x + temp4.z = (-temp4.x < temp4.x) ? 1 : 0; + // mul r4.y, r4.y, r4.z + temp4.y = temp4.y * temp4.z; + // pow r5.x, r4.x, c17.x + temp5.x = pow(temp4.x, Shininess.x); + // mul r4.x, r4.y, r5.x + temp4.x = temp4.y * temp5.x; + // mul r4.yzw, r3.w, c5.xxyz + temp4.yzw = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r4.x, c5 + temp5.xyz = temp4.xxx * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4.yzww, c15 + temp4.xyz = temp4.yzw * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r3, r2.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r7 + temp5.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // slt r6.y, -r5.w, r5.w + temp6.y = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r5.w, c17.x + temp6.y = pow(temp5.w, Shininess.x); + // mul r5.w, r6.x, r6.y + temp5.w = temp6.x * temp6.y; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r5.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp5.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c89 + temp6.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r6, r2.w + temp3.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r0, c93 + temp4.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c92 + temp6.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r0, c96 + temp4.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c95 + temp6.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r4 + temp1.x = dot(temp1.xyz, temp4.xyz); + // max r1.x, r1.x, c3.x + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c13.x, r1, r3 + temp1.xyz = expr13.xxx * temp1.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r1.xyz, r1, c15, r3 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r1.xyz, r2, r1 + temp1.xyz = temp2.xyz * temp1.xyz; + // mul r1.xyz, r1, c19.x + temp1.xyz = temp1.xyz * HDRMultiplier.xxx; + // mul o1.xyz, r1, c0.z + o.texcoord1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r1.xyz, r5, c16 + temp1.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c20.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c20.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o5.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // mul r1.w, r1.w, v7.w + temp1.w = temp1.w * i.color.w; + // mul r2.xyz, c2, v7 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mad r4.xyz, r3, r2.w, c6 + temp4.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.x, r1, r5 + temp4.x = dot(temp1.xyz, temp5.xyz); + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r4.y + temp3.w = temp3.w * temp4.y; + // slt r4.z, -r4.x, r4.x + temp4.z = (-temp4.x < temp4.x) ? 1 : 0; + // mul r4.y, r4.y, r4.z + temp4.y = temp4.y * temp4.z; + // pow r5.x, r4.x, c17.x + temp5.x = pow(temp4.x, Shininess.x); + // mul r4.x, r4.y, r5.x + temp4.x = temp4.y * temp5.x; + // mul r4.yzw, r3.w, c5.xxyz + temp4.yzw = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r4.x, c5 + temp5.xyz = temp4.xxx * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4.yzww, c15 + temp4.xyz = temp4.yzw * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r3, r2.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r7 + temp5.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // slt r6.y, -r5.w, r5.w + temp6.y = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r5.w, c17.x + temp6.y = pow(temp5.w, Shininess.x); + // mul r5.w, r6.x, r6.y + temp5.w = temp6.x * temp6.y; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r5.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp5.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c89 + temp6.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r6, r2.w + temp3.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r0, c93 + temp4.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c92 + temp6.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r0, c96 + temp4.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c95 + temp6.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r4 + temp1.x = dot(temp1.xyz, temp4.xyz); + // max r1.x, r1.x, c3.x + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c13.x, r1, r3 + temp1.xyz = expr13.xxx * temp1.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r1.xyz, r1, c15, r3 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r1.xyz, r2, r1 + temp1.xyz = temp2.xyz * temp1.xyz; + // mul r1.xyz, r1, c19.x + temp1.xyz = temp1.xyz * HDRMultiplier.xxx; + // mul o1.xyz, r1, c0.z + o.texcoord1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r1.xyz, r5, c16 + temp1.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c20.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c20.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o5.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 57 + compile vs_3_0 VS_Array_Shader_1(), // 58 + compile vs_3_0 VS_Array_Shader_2(), // 59 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord5.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[6] = { + compile ps_3_0 PS_Array_Shader_0(), // 60 + compile ps_3_0 PS_Array_Shader_1(), // 61 + compile ps_3_0 PS_Array_Shader_2(), // 62 + compile ps_3_0 PS_Array_Shader_3(), // 63 + compile ps_3_0 PS_Array_Shader_4(), // 64 + compile ps_3_0 PS_Array_Shader_5(), // 65 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 color1 : COLOR1; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float3 temp5, temp7; + float addr0; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0, r7 + temp3.y = dot(temp0.xyz, temp7.xyz); + // dp3 r3.x, r0, c6[a0.x] + temp3.x = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v3, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul r3.xyz, r3, c16.x + temp3.xyz = temp3.xyz * HDRMultiplier.xxx; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // add r3.xy, r1.yxzw, c17.wzzw + temp3.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r3.xyxy, c17.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r3.x, r0, c6 + temp3.x = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r0.w, c6 + temp2.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0, r5 + temp3.y = dot(temp0.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r0, r3 + temp0 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.xyw, r0.y, c5.xyzz + temp0.xyw = temp0.yyy * DirectionalLight[0].Color.xyz; + // mul r0.xyw, r0, c12.xyzz + temp0.xyw = temp0.xyw * ColorDiffuse.xyz; + // mul r0.xyw, r4.xyzz, r0 + temp0.xyw = temp4.xyz * temp0.xyw; + // mul oT4.xyz, r0.xyww, c0.z + o.texcoord4 = temp0.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xyz, r0.z, c5 + temp0.xyz = temp0.zzz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, c13 + temp0.xyz = temp0.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r0, c0.z + o.texcoord5 = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add oT2.xy, r0, c118 + o.texcoord2.xy = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT3.xyz, r0.yzww, r2.x, c3.xxyw + o.texcoord3.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r0.x + o.texcoord3.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mul oT1.w, v3.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v4, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul r3.xyz, r3, c16.x + temp3.xyz = temp3.xyz * HDRMultiplier.xxx; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // add r3.xy, r0.yxzw, c17.wzzw + temp3.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r3.xyxy, c17.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c12.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r4.xyzz, r1 + temp1.xyw = temp4.xyz * temp1.xyw; + // mul oT4.xyz, r1.xyww, c3.z + o.texcoord4 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c13 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r1, c3.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.x + temp2.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r2.x, c0.xxyw + o.texcoord3.xyz = temp1.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 position : POSITION; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float2 addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v7.w + temp0.x = temp0.x * i.color.w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // add r2.xy, r0.yxzw, c17.wzzw + temp2.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r2.xyxy, c17.xyyx + o.texcoord2.zw = temp2.xy * Shroud.ScaleUV_OffsetUV.yx; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add oT2.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v7, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul r3.xyz, r3, c16.x + temp3.xyz = temp3.xyz * HDRMultiplier.xxx; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xzw, r1.z, c5.xyyz + temp1.xzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xzw, r1, c13.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r1.xzww, c3.z + o.texcoord5 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.z, r1.x + temp1.z = 1.0f / temp1.x; + // mad oT3.xyz, r2, r1.z, c0.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.zzz + float3(0, 0, -0.0015); + // mul r1.yzw, r1.y, c5.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.yzw, r1, c12.xxyz + temp1.yzw = temp1.yzw * ColorDiffuse.xyz; + // mul r1.yzw, r4.xxyz, r1 + temp1.yzw = temp4.xyz * temp1.yzw; + // mul oT4.xyz, r1.yzww, c3.z + o.texcoord4 = temp1.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 69 + compile vs_2_0 VS_M_Array_Shader_1(), // 70 + compile vs_2_0 VS_M_Array_Shader_2(), // 71 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t5 + temp3.xyz = i.texcoord5.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2, -1, 1, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t5 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[6] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 72 + compile ps_2_0 PS_M_Array_Shader_1(), // 73 + compile ps_2_0 PS_M_Array_Shader_2(), // 74 + compile ps_2_0 PS_M_Array_Shader_3(), // 75 + compile ps_2_0 PS_M_Array_Shader_4(), // 76 + compile ps_2_0 PS_M_Array_Shader_5(), // 77 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 84 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 85 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 86 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mad r0, v0.x, r0.w, c0.x + temp0 = i.color.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 87 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 88 +}; +// _CreateShadowMap_Expression24 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression24() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c0.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt c0.x, r1.x, r0.x + expr0.x = temp1.x < temp0.x; + return expr0; +} + +// _CreateShadowMap_Expression25 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_L_Expression26 Expression_2_0 Has PRES False +float _Default_L_Expression26() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_L_Expression27 Expression_2_0 Has PRES False +float _Default_L_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression28 Expression_2_0 Has PRES False +float _Default_M_Expression28() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_M_Expression29 Expression_2_0 Has PRES False +float _Default_M_Expression29() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression30 Expression_2_0 Has PRES False +float Default_Expression30() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression31 Expression_2_0 Has PRES False +float Default_Expression31() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression31()]; // 67 + PixelShader = PS_Array[Default_Expression30()]; // 68 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression29()]; // 79 + PixelShader = PS_M_Array[_Default_M_Expression28()]; // 80 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression27()]; // 82 + PixelShader = PS_M_Array[_Default_L_Expression26()]; // 83 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression25()]; // 90 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression24()]; // 91 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/bootupscreen.fx b/bootupscreen.fx new file mode 100644 index 0000000..949dc10 --- /dev/null +++ b/bootupscreen.fx @@ -0,0 +1,110 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture BaseTexture ; // 2 +sampler2D BaseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + AddressU = 3; + AddressV = 3; + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; +}; +// Blit_PixelShader1 Pixel_2_0 Has PRES False +struct Blit_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 Blit_PixelShader1(Blit_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Blit_VertexShader2 Vertex_2_0 Has PRES False +struct Blit_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Blit_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +Blit_VertexShader2_Output Blit_VertexShader2(Blit_VertexShader2_Input i) +{ + Blit_VertexShader2_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +technique Blit +{ + pass P0 + { + VertexShader = compile vs_2_0 Blit_VertexShader2(); // 7 + PixelShader = compile ps_2_0 Blit_PixelShader1(); // 8 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + } +} + diff --git a/buildingsallied.fx b/buildingsallied.fx new file mode 100644 index 0000000..19a5912 --- /dev/null +++ b/buildingsallied.fx @@ -0,0 +1,3168 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 49 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 51 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 54 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 59 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DamagedTexture ; // 64 +sampler2D DamagedTextureSampler = +sampler_state +{ + Texture = ; // 66 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 73 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 76 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.1, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mov r1.z, c0.z + temp1.z = float1(0.1); + // mad r0.xyz, c4, r1.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp1.zzz + temp0.xyz; + // mul r0.xyz, r0, v6 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v6.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.5, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v7.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mov r2.w, c0.w + temp2.w = float1(0.1); + // mad r3.xyz, c4, r2.w, r3 + temp3.xyz = AmbientLightColor.xyz * temp2.www + temp3.xyz; + // mul r1.xyz, r3, v7 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 80 + compile vs_3_0 VS_H_Array_Shader_1(), // 81 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s3 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(1.5, 1.5, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v5.zwzw, s0 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, -c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c1 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c0.x + temp7.x = float1(0); + // cmp r7.yzw, -r5_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r5_abs.x, c90, r7.x + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r5_abs.x, c91, r7.x + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r5_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -1.5 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s4 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(1.5, 1.5, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v6.zwzw, s1 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r1.w, r5 + temp4.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r4, c5 + temp4.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c1.y + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r5_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r5_abs.x, c90, r7.y + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r5_abs.x, c91, r7.y + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r5_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp6, temp7; + float3 temp5, temp8; + float2 temp9; + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // def c4, 2, 2.2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r2.yzw, r2.z, r3.xxyz, r0.xxyz + temp2.yzw = temp2.zzz * temp3.xyz + temp0.xyz; + // log r3.x, r2.y + temp3.x = log2(temp2.y); + // log r3.y, r2.z + temp3.y = log2(temp2.z); + // log r3.z, r2.w + temp3.z = log2(temp2.w); + // mul r2.yzw, r3.xxyz, c4.y + temp2.yzw = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.y + temp3.x = exp2(temp2.y); + // exp r3.y, r2.z + temp3.y = exp2(temp2.z); + // exp r3.z, r2.w + temp3.z = exp2(temp2.w); + // texld r4, v0, s3 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.yzw, r4.xxyz, c4.x, c4.z + temp2.yzw = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.yzw, r2, -c4.xwwz + temp2.yzw = temp2.yzw * float3(1.5, 1.5, 1); + // dp3 r4.x, r2.yzww, v1 + temp4.x = dot(temp2.yzw, i.texcoord1.xyz); + // dp3 r4.y, r2.yzww, v2 + temp4.y = dot(temp2.yzw, i.texcoord2.xyz); + // dp3 r4.z, r2.yzww, v3 + temp4.z = dot(temp2.yzw, i.texcoord3.xyz); + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r1.w, r1, r5 + temp1.w = dot(temp1.xyz, temp5.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r5, -r1.w, r1 + temp1.xyz = temp5.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c4.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r5, c6 + temp1.w = dot(temp5.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3, r2.x + temp4.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r5, c8 + temp1.w = dot(temp5.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r3, r2.x + temp2.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c1.x + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c3 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c1.x + temp7.x = float1(0); + // cmp r7.yzw, -r4_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r4_abs.x, c90, r7.x + temp8.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r4_abs.x, c91, r7.x + temp9.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r4_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r4_abs.y, c93, r8 + temp8.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.y, c94, r9 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r4_abs.z, c95, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.z, c96, r8 + temp8.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r4_abs.w, c98, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.w, c99, r8 + temp8.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.x, c103, r4 + temp4.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.y, c106, r4 + temp4.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.z, c109, r4 + temp4.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.w, c112, r4 + temp4.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c4.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r5, r7 + temp2.w = dot(temp5.xyz, temp7.xyz); + // max r3.w, r2.w, c1.x + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r3, r1 + temp0.xyz = temp2.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c4.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp6, temp7, temp8; + float3 temp5; + float2 temp9; + // def c1, 1, 0, 0.25, 0 + // def c3, 2, 2.2, -1, -1.5 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c3.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r2.yzw, r2.z, r3.xxyz, r0.xxyz + temp2.yzw = temp2.zzz * temp3.xyz + temp0.xyz; + // log r3.x, r2.y + temp3.x = log2(temp2.y); + // log r3.y, r2.z + temp3.y = log2(temp2.z); + // log r3.z, r2.w + temp3.z = log2(temp2.w); + // mul r2.yzw, r3.xxyz, c3.y + temp2.yzw = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.y + temp3.x = exp2(temp2.y); + // exp r3.y, r2.z + temp3.y = exp2(temp2.z); + // exp r3.z, r2.w + temp3.z = exp2(temp2.w); + // texld r4, v0, s4 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.yzw, r4.xxyz, c3.x, c3.z + temp2.yzw = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.yzw, r2, -c3.xwwz + temp2.yzw = temp2.yzw * float3(1.5, 1.5, 1); + // dp3 r4.x, r2.yzww, v1 + temp4.x = dot(temp2.yzw, i.texcoord1.xyz); + // dp3 r4.y, r2.yzww, v2 + temp4.y = dot(temp2.yzw, i.texcoord2.xyz); + // dp3 r4.z, r2.yzww, v3 + temp4.z = dot(temp2.yzw, i.texcoord3.xyz); + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r2.yz, c11.xzxw, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r6, r2.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp2.yz); + // add r2.yz, c11, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r7, r2.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp2.yz); + // add r2.yz, c11.xwzw, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r8, r2.yzzw, s0 + temp8 = tex2D(ShadowMapSampler, temp2.yz); + // mov r4.y, r6.x + temp4.y = temp6.x; + // mov r4.z, r7.x + temp4.z = temp7.x; + // mov r4.w, r8.x + temp4.w = temp8.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.y, r1, r5 + temp2.y = dot(temp1.xyz, temp5.xyz); + // add r2.y, r2.y, r2.y + temp2.y = temp2.y + temp2.y; + // mad r1.xyz, r5, -r2.y, r1 + temp1.xyz = temp5.xyz * -temp2.yyy + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c3.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r5, c6 + temp1.w = dot(temp5.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r5, c8 + temp1.w = dot(temp5.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r3, r2.x + temp2.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c9 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r4_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r4_abs.x, c90, r7.y + temp8.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r4_abs.x, c91, r7.y + temp9.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r4_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r4_abs.y, c93, r8 + temp8.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.y, c94, r9 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r4_abs.z, c95, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.z, c96, r8 + temp8.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r4_abs.w, c98, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.w, c99, r8 + temp8.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.x, c103, r4 + temp4.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.y, c106, r4 + temp4.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.z, c109, r4 + temp4.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.w, c112, r4 + temp4.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r5, r7 + temp2.w = dot(temp5.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r3, r1 + temp0.xyz = temp2.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 82 + compile ps_3_0 PS_H_Array_Shader_1(), // 83 + compile ps_3_0 PS_H_Array_Shader_2(), // 84 + compile ps_3_0 PS_H_Array_Shader_3(), // 85 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 1, 0, 0.1, -1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mov r2.xzw, c0 + temp2.xzw = float3(1, 0.1, -1); + // mad r0.xyz, c4, r2.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp2.zzz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v6 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xy, r2.xwzw, c12.x + temp0.xy = temp2.xw * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mov r2.xyw, c0 + temp2.xyw = float3(1, -1, 0.1); + // mad r1.xyz, c4, r2.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp2.www + temp1.xyz; + // slt r2.z, v4.x, -v4.x + temp2.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.w, v4.x + temp2.w = frac(i.blendindices.x); + // add r3.x, -r2.w, v4.x + temp3.x = -temp2.w + i.blendindices.x; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r2.z, r2.z, r2.w, r3.x + temp2.z = temp2.z * temp2.w + temp3.x; + // add r2.z, r2.z, r2.z + temp2.z = temp2.z + temp2.z; + // mova a0.x, r2.z + addr0.x = temp2.z; + // mul r3.w, v7.w, c129[a0.x].w + temp3.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r3.xyz, v7 + temp3.xyz = i.color.xyz; + // mul o7, r1, r3 + o.color = temp1 * temp3; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r1.xy, r2, c12.x + temp1.xy = temp2.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 88 + compile vs_3_0 VS_M_Array_Shader_1(), // 89 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c1.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c1.y, c1.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c1.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.x, c0.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c0.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c0.x, c0.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 50, 0 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c3.y, c3.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c3.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c1.x, c1.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c1.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c1.x, c1.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c3.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r2, v0, s1 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.xyw, r2.xyzz, c0.xyzz + temp1.xyw = temp2.xyz * RecolorColor.xyz; + // mad r1.xyw, r1, c3.y, -r2.xyzz + temp1.xyw = temp1.xyw * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r1.xyz, r1.z, r1.xyww, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.zzz * temp1.xyw + temp2.xyz; + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r3, v2.zwzw, s0 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // mad_pp r2.xyz, r1, v3, r0 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r1, v3.w, -c3.z, r0 + temp1 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r2, r1 + temp0 = /* not implemented _pp modifier */ temp2 * temp1; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 50, 0.25 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c3.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c3.y, c3.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c3.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c3.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r2, v0, s2 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.xyw, r2.xyzz, c0.xyzz + temp1.xyw = temp2.xyz * RecolorColor.xyz; + // mad r1.xyw, r1, c3.y, -r2.xyzz + temp1.xyw = temp1.xyw * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r1.xyz, r1.z, r1.xyww, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.zzz * temp1.xyw + temp2.xyz; + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r3, v2.zwzw, s1 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // mad_pp r2.xyz, r1, v4, r0 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r1, v4.w, -c3.z, r0 + temp1 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r2, r1 + temp0 = /* not implemented _pp modifier */ temp2 * temp1; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 90 + compile ps_3_0 PS_M_Array_Shader_1(), // 91 + compile ps_3_0 PS_M_Array_Shader_2(), // 92 + compile ps_3_0 PS_M_Array_Shader_3(), // 93 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mov r0.z, c0.z + temp0.z = float1(0.1); + // mad r1.xyz, c4, r0.z, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.zzz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v4 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0.1 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mov r0.w, c0.w + temp0.w = float1(0.1); + // mad r1.xyz, c4, r0.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.www + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v5.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v5 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 96 + compile vs_2_0 VS_L_Array_Shader_1(), // 97 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r3, v0.w, c0.x, r0 + temp3 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r3, r1 + temp0 = temp3 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c1, 2, 1, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s2 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s1 + temp1 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r2, t0, s0 + temp2 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r3, t1, s3 + temp3 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r4, v0.w, c1.y, r0 + temp4 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r0.xyz, r2, c0 + temp0.xyz = temp2.xyz * RecolorColor.xyz; + // mad r0.xyz, r0, c1.x, -r2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + -temp2.xyz; + // mad r0.xyz, r1.z, r0, r2 + temp0.xyz = temp1.zzz * temp0.xyz + temp2.xyz; + // mul r2.xyz, r0, v0 + temp2.xyz = temp0.xyz * i.color.xyz; + // mul r0, r4, r2 + temp0 = temp4 * temp2; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 98 + compile ps_2_0 PS_L_Array_Shader_1(), // 99 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v3.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT2.xy, v2 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, v3 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 102 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 103 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, -0.3764706, 0, 0 + // dcl t0.xy + // dcl t2.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(DamagedTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // lrp r1.x, v0.x, c0.x, r0.w + temp1.x = lerp(temp0.w, float1(1), i.color.x); + // mad r0, r1.w, r1.x, c0.y + temp0 = temp1.w * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 104 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 105 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression24 Expression_2_0 Has PRES False +float Default_L_Expression24() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression26 Expression_2_0 Has PRES False +float Default_M_Expression26() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression28()]; // 86 + PixelShader = PS_H_Array[Default_Expression27()]; // 87 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression26()]; // 94 + PixelShader = PS_M_Array[Default_M_Expression25()]; // 95 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression24()]; // 100 + PixelShader = PS_L_Array[Default_L_Expression23()]; // 101 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 106 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 107 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/buildingsfactionfrozen.fx b/buildingsfactionfrozen.fx new file mode 100644 index 0000000..0b7e99d --- /dev/null +++ b/buildingsfactionfrozen.fx @@ -0,0 +1,5429 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture FractalNormalMap ; // 49 +sampler2D FractalNormalMapSampler = +sampler_state +{ + Texture = ; // 52 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 56 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 58 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 61 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 63 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 66 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 68 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DamagedTexture ; // 71 +sampler2D DamagedTextureSampler = +sampler_state +{ + Texture = ; // 73 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 80 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 83 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mov r1.xyz, c9 + temp1.xyz = DirectionalLight[2].Color.xyz; + // mad r0.xyz, r1, r0.x, c4 + temp0.xyz = temp1.xyz * temp0.xxx + AmbientLightColor.xyz; + // mul r0.xyz, r0, v6 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v6.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v7.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r1.xyz, r3, v7 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 87 + compile vs_3_0 VS_H_Array_Shader_1(), // 88 +}; +// VS_H_Frozen_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Frozen_Array_Shader_0_Output VS_H_Frozen_Array_Shader_0(VS_H_Frozen_Array_Shader_0_Input i) +{ + VS_H_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 1, 0, 1.5, 0.5 + // def c2, 0.015, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // dp3 r2.x, v1, c124 + temp2.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v1, c125 + temp2.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v1, c126 + temp2.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.y + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r0.xyz, r3, v5 + temp0.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mad r0.xyz, r2, c0.z, r1 + temp0.xyz = temp2.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mul o1.xy, r0, c2.x + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r1.x, v3, c124 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // dp3 r1.x, v2, c124 + temp1.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r1.x + o.texcoord1.y = -temp1.x; + // dp3 r1.x, v3, c125 + temp1.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r1.x + o.texcoord2.x = -temp1.x; + // dp3 r1.x, v2, c125 + temp1.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r1.x + o.texcoord2.y = -temp1.x; + // dp3 r1.x, v3, c126 + temp1.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r1.x + o.texcoord3.x = -temp1.x; + // dp3 r1.x, v2, c126 + temp1.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r1.x + o.texcoord3.y = -temp1.x; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Frozen_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Frozen_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Frozen_Array_Shader_1_Output VS_H_Frozen_Array_Shader_1(VS_H_Frozen_Array_Shader_1_Input i) +{ + VS_H_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 1.5, 0 + // def c2, 0.5, 0.015, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.w + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r2, c0.z, r0 + temp0.xyz = temp2.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mul o1.xy, r0, c2.y + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.zzww + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Frozen_Array[2] = { + compile vs_3_0 VS_H_Frozen_Array_Shader_0(), // 89 + compile vs_3_0 VS_H_Frozen_Array_Shader_1(), // 90 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s3 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v5.zwzw, s0 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, -c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c1 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c0.x + temp7.x = float1(0); + // cmp r7.yzw, -r5_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r5_abs.x, c90, r7.x + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r5_abs.x, c91, r7.x + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r5_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s4 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v6.zwzw, s1 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r1.w, r5 + temp4.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r4, c5 + temp4.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c1.y + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r5_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r5_abs.x, c90, r7.y + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r5_abs.x, c91, r7.y + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r5_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp6, temp7; + float3 temp5, temp8; + float2 temp9; + // def c1, 2, 2.2, -1, -3 + // def c3, 0, 1, 2, 3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r2.yzw, r2.z, r3.xxyz, r0.xxyz + temp2.yzw = temp2.zzz * temp3.xyz + temp0.xyz; + // log r3.x, r2.y + temp3.x = log2(temp2.y); + // log r3.y, r2.z + temp3.y = log2(temp2.z); + // log r3.z, r2.w + temp3.z = log2(temp2.w); + // mul r2.yzw, r3.xxyz, c1.y + temp2.yzw = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.y + temp3.x = exp2(temp2.y); + // exp r3.y, r2.z + temp3.y = exp2(temp2.z); + // exp r3.z, r2.w + temp3.z = exp2(temp2.w); + // texld r4, v0, s3 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.yzw, r4.xxyz, c1.x, c1.z + temp2.yzw = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.yzw, r2, -c1.xwwz + temp2.yzw = temp2.yzw * float3(3, 3, 1); + // dp3 r4.x, r2.yzww, v1 + temp4.x = dot(temp2.yzw, i.texcoord1.xyz); + // dp3 r4.y, r2.yzww, v2 + temp4.y = dot(temp2.yzw, i.texcoord2.xyz); + // dp3 r4.z, r2.yzww, v3 + temp4.z = dot(temp2.yzw, i.texcoord3.xyz); + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r1.w, r1, r5 + temp1.w = dot(temp1.xyz, temp5.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r5, -r1.w, r1 + temp1.xyz = temp5.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c1.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r5, c6 + temp1.w = dot(temp5.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c3.x + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3, r2.x + temp4.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r5, c8 + temp1.w = dot(temp5.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c3.x + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r3, r2.x + temp2.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c3.x + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c3.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c3.x + temp7.x = float1(0); + // cmp r7.yzw, -r4_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r4_abs.x, c90, r7.x + temp8.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r4_abs.x, c91, r7.x + temp9.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r4_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r4_abs.y, c93, r8 + temp8.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.y, c94, r9 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r4_abs.z, c95, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.z, c96, r8 + temp8.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r4_abs.w, c98, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.w, c99, r8 + temp8.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.x, c103, r4 + temp4.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.y, c106, r4 + temp4.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.z, c109, r4 + temp4.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.w, c112, r4 + temp4.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c1.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r5, r7 + temp2.w = dot(temp5.xyz, temp7.xyz); + // max r3.w, r2.w, c3.x + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c1.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r3, r1 + temp0.xyz = temp2.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c1.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp6, temp7, temp8; + float3 temp5; + float2 temp9; + // def c1, -0, -1, -2, -3 + // def c3, 1, 0, 0.25, 0 + // def c4, 2, 2.2, -1, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r2.yzw, r2.z, r3.xxyz, r0.xxyz + temp2.yzw = temp2.zzz * temp3.xyz + temp0.xyz; + // log r3.x, r2.y + temp3.x = log2(temp2.y); + // log r3.y, r2.z + temp3.y = log2(temp2.z); + // log r3.z, r2.w + temp3.z = log2(temp2.w); + // mul r2.yzw, r3.xxyz, c4.y + temp2.yzw = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.y + temp3.x = exp2(temp2.y); + // exp r3.y, r2.z + temp3.y = exp2(temp2.z); + // exp r3.z, r2.w + temp3.z = exp2(temp2.w); + // texld r4, v0, s4 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.yzw, r4.xxyz, c4.x, c4.z + temp2.yzw = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.yzw, r2, -c4.xwwz + temp2.yzw = temp2.yzw * float3(3, 3, 1); + // dp3 r4.x, r2.yzww, v1 + temp4.x = dot(temp2.yzw, i.texcoord1.xyz); + // dp3 r4.y, r2.yzww, v2 + temp4.y = dot(temp2.yzw, i.texcoord2.xyz); + // dp3 r4.z, r2.yzww, v3 + temp4.z = dot(temp2.yzw, i.texcoord3.xyz); + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r2.yz, c11.xzxw, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r6, r2.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp2.yz); + // add r2.yz, c11, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r7, r2.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp2.yz); + // add r2.yz, c11.xwzw, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r8, r2.yzzw, s0 + temp8 = tex2D(ShadowMapSampler, temp2.yz); + // mov r4.y, r6.x + temp4.y = temp6.x; + // mov r4.z, r7.x + temp4.z = temp7.x; + // mov r4.w, r8.x + temp4.w = temp8.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c3.x, c3.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c4.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c3.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.y, r1, r5 + temp2.y = dot(temp1.xyz, temp5.xyz); + // add r2.y, r2.y, r2.y + temp2.y = temp2.y + temp2.y; + // mad r1.xyz, r5, -r2.y, r1 + temp1.xyz = temp5.xyz * -temp2.yyy + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c4.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r5, c6 + temp1.w = dot(temp5.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c3.y + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r5, c8 + temp1.w = dot(temp5.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c3.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r3, r2.x + temp2.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c3.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c3.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c9 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c3.y + temp7.y = float1(0); + // cmp r7.xzw, -r4_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r4_abs.x, c90, r7.y + temp8.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r4_abs.x, c91, r7.y + temp9.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r4_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r4_abs.y, c93, r8 + temp8.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.y, c94, r9 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r4_abs.z, c95, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.z, c96, r8 + temp8.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r4_abs.w, c98, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.w, c99, r8 + temp8.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.x, c103, r4 + temp4.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.y, c106, r4 + temp4.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.z, c109, r4 + temp4.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.w, c112, r4 + temp4.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c4.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r5, r7 + temp2.w = dot(temp5.xyz, temp7.xyz); + // max r3.w, r2.w, c3.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r3, r1 + temp0.xyz = temp2.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c4.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 91 + compile ps_3_0 PS_H_Array_Shader_1(), // 92 + compile ps_3_0 PS_H_Array_Shader_2(), // 93 + compile ps_3_0 PS_H_Array_Shader_3(), // 94 +}; +// PS_H_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_0(PS_H_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2, -1, 3, 1 + // def c1, 2.2, 0, 0, 0 + // def c2, 0.13, 0.33, 0.5, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6.w + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s2 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c0.x, c0.y + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, c0.zzww + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r2.w, r3 + temp3.xyz = temp2.www * temp3.xyz; + // mul r3.xyz, r3, c2 + temp3.xyz = temp3.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, c5, r3 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2.w, c7 + temp3.xyz = temp2.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r3, c2, r1 + temp1.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.w + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, c2, r1 + temp0.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, c0.w, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_1(PS_H_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 2.2 + // def c2, 2, -1, 3, 1 + // def c3, 0.13, 0.33, 0.5, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7.w + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s3 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c2.x, c2.y + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, c2.zzww + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, c2.w, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.w + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r2.w, r2, c6 + temp2.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.w, r3 + temp3.xyz = temp3.www * temp3.xyz; + // mul r3.xyz, r3, c3 + temp3.xyz = temp3.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, r1.w, r3 + temp1.xyz = temp1.xyz * temp1.www + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2.w, c7 + temp3.xyz = temp2.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r3, c3, r1 + temp1.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c2.w + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, c2.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, c3, r1 + temp0.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, c2.w, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_2(PS_H_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2, -1, 3, 1 + // def c1, 2.2, 0, 0, 0 + // def c2, 0.13, 0.33, 0.5, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6.w + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s2 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c0.x, c0.y + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, c0.zzww + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r2.w, r3 + temp3.xyz = temp2.www * temp3.xyz; + // mul r3.xyz, r3, c2 + temp3.xyz = temp3.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, c5, r3 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2.w, c7 + temp3.xyz = temp2.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r3, c2, r1 + temp1.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.w + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, c2, r1 + temp0.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, c0.w, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_3(PS_H_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 2.2 + // def c2, 2, -1, 3, 1 + // def c3, 0.13, 0.33, 0.5, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7.w + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s3 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c2.x, c2.y + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, c2.zzww + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, c2.w, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.w + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r2.w, r2, c6 + temp2.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.w, r3 + temp3.xyz = temp3.www * temp3.xyz; + // mul r3.xyz, r3, c3 + temp3.xyz = temp3.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, r1.w, r3 + temp1.xyz = temp1.xyz * temp1.www + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2.w, c7 + temp3.xyz = temp2.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r3, c3, r1 + temp1.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c2.w + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, c2.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, c3, r1 + temp0.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, c2.w, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Frozen_Array[4] = { + compile ps_3_0 PS_H_Frozen_Array_Shader_0(), // 95 + compile ps_3_0 PS_H_Frozen_Array_Shader_1(), // 96 + compile ps_3_0 PS_H_Frozen_Array_Shader_2(), // 97 + compile ps_3_0 PS_H_Frozen_Array_Shader_3(), // 98 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v6 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c12.x + temp0.xy = temp0.xz * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v7.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v7 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 103 + compile vs_3_0 VS_M_Array_Shader_1(), // 104 +}; +// VS_M_Frozen_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Frozen_Array_Shader_0_Output VS_M_Frozen_Array_Shader_0(VS_M_Frozen_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, 1.5, 0.015 + // def c2, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mad r1.xyz, r0, c0.z, r1 + temp1.xyz = temp0.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r2.x, v3, c124 + temp2.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v3, c125 + temp2.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v3, c126 + temp2.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r2 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v2, c124 + temp3.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v2, c125 + temp3.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v2, c126 + temp3.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r3 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 o2.z, c6, r0 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp0.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r0 + temp2.z = dot(temp4.xyz, temp0.xyz); + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r2, r0.w + o.texcoord2 = temp2 * temp0.w; + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.x, r0, c8 + temp0.x = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.y, r0.w, c0.y + temp0.y = max(temp0.w, float1(0)); + // mul r0.yzw, r0.y, c9.xxyz + temp0.yzw = temp0.yyy * DirectionalLight[2].Color.xyz; + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c7, r0.x, r0.yzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.xxx + temp0.yzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // mul o1.xy, r1, c0.w + o.texcoord.xy = temp1.xy * float2(0.015, 0.015); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xy, c2 + temp0.xy = float2(1, -1); + // mul r0.xy, r0, c12.x + temp0.xy = temp0.xy * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o5.w, r0.w + o.texcoord4.w = temp0.w; + // mad o5.xyz, r0, r1.x, c2.zzww + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Frozen_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Frozen_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Frozen_Array_Shader_1_Output VS_M_Frozen_Array_Shader_1(VS_M_Frozen_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 1.5, 0 + // def c2, 0.015, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mad r0.xyz, r1, c0.z, r0 + temp0.xyz = temp1.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r2, v3.zxyy, c128[a0.x].yzxy + temp2 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.x, c6, -r2 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.y, c6, -r3 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 o2.z, c6, r1 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp1.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r1 + temp2.z = dot(temp4.xyz, temp1.xyz); + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r2, r1.w + o.texcoord2 = temp2 * temp1.w; + // dp3 r1.w, r1, c10 + temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.x, r1, c8 + temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r1.y, r1.w, c0.w + temp1.y = max(temp1.w, float1(0)); + // mul r1.yzw, r1.y, c9.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz; + // max r1.x, r1.x, c0.w + temp1.x = max(temp1.x, float1(0)); + // mad r1.xyz, c7, r1.x, r1.yzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // mul o1.xy, r0, c2.x + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.w + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Frozen_Array[2] = { + compile vs_3_0 VS_M_Frozen_Array_Shader_0(), // 105 + compile vs_3_0 VS_M_Frozen_Array_Shader_1(), // 106 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c1.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c1.y, c1.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c1.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.x, c0.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c0.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c0.x, c0.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 50, 0 + // def c3, 0.8, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c3.y, c3.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c3.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c1.x, c1.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c1.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c1.x, c1.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c3.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r2, v0, s1 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.xyw, r2.xyzz, c0.xyzz + temp1.xyw = temp2.xyz * RecolorColor.xyz; + // mad r1.xyw, r1, c3.y, -r2.xyzz + temp1.xyw = temp1.xyw * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r1.xyz, r1.z, r1.xyww, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.zzz * temp1.xyw + temp2.xyz; + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r3, v2.zwzw, s0 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // mad_pp r2.xyz, r1, v3, r0 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r1, v3.w, -c3.z, r0 + temp1 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r2, r1 + temp0 = /* not implemented _pp modifier */ temp2 * temp1; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 50, 0.25 + // def c3, 0.8, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c3.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c3.y, c3.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c3.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c3.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r2, v0, s2 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.xyw, r2.xyzz, c0.xyzz + temp1.xyw = temp2.xyz * RecolorColor.xyz; + // mad r1.xyw, r1, c3.y, -r2.xyzz + temp1.xyw = temp1.xyw * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r1.xyz, r1.z, r1.xyww, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.zzz * temp1.xyw + temp2.xyz; + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r3, v2.zwzw, s1 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // mad_pp r2.xyz, r1, v4, r0 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r1, v4.w, -c3.z, r0 + temp1 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r2, r1 + temp0 = /* not implemented _pp modifier */ temp2 * temp1; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 107 + compile ps_3_0 PS_M_Array_Shader_1(), // 108 + compile ps_3_0 PS_M_Array_Shader_2(), // 109 + compile ps_3_0 PS_M_Array_Shader_3(), // 110 +}; +// PS_M_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_0(PS_M_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3.w + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // mad_pp r0.xyz, r0.y, c2, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp0.yyy * float3(0.13, 0.33, 0.5) + temp0.xxx; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov_pp r0.w, r1.w + temp0.w = /* not implemented _pp modifier */ temp1.w; + // mul_pp r0, r0, r2 + temp0 = /* not implemented _pp modifier */ temp0 * temp2; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_1(PS_M_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.8, 2, -1, -3 + // def c1, 0, 1, 50, 0.25 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4.w + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.y, c0.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c0.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c0.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // mad_pp r0.xyz, r0.x, c2, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.13, 0.33, 0.5) + temp0.yyy; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c0.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov_pp r0.w, r1.w + temp0.w = /* not implemented _pp modifier */ temp1.w; + // mul_pp r0, r0, r2 + temp0 = /* not implemented _pp modifier */ temp0 * temp2; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_2(PS_M_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3.w + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // mad_pp r0.xyz, r0.y, c2, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp0.yyy * float3(0.13, 0.33, 0.5) + temp0.xxx; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov_pp r0.w, r1.w + temp0.w = /* not implemented _pp modifier */ temp1.w; + // mul_pp r0, r0, r2 + temp0 = /* not implemented _pp modifier */ temp0 * temp2; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_3(PS_M_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.8, 2, -1, -3 + // def c1, 0, 1, 50, 0.25 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4.w + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.y, c0.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c0.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c0.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // mad_pp r0.xyz, r0.x, c2, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.13, 0.33, 0.5) + temp0.yyy; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c0.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov_pp r0.w, r1.w + temp0.w = /* not implemented _pp modifier */ temp1.w; + // mul_pp r0, r0, r2 + temp0 = /* not implemented _pp modifier */ temp0 * temp2; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // + + return out_color; +} + +PixelShader PS_M_Frozen_Array[4] = { + compile ps_3_0 PS_M_Frozen_Array_Shader_0(), // 111 + compile ps_3_0 PS_M_Frozen_Array_Shader_1(), // 112 + compile ps_3_0 PS_M_Frozen_Array_Shader_2(), // 113 + compile ps_3_0 PS_M_Frozen_Array_Shader_3(), // 114 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v4 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v5.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v5 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 119 + compile vs_2_0 VS_L_Array_Shader_1(), // 120 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r3, v0.w, c0.x, r0 + temp3 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r3, r1 + temp0 = temp3 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c1, 2, 1, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s2 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s1 + temp1 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r2, t0, s0 + temp2 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r3, t1, s3 + temp3 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r4, v0.w, c1.y, r0 + temp4 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r0.xyz, r2, c0 + temp0.xyz = temp2.xyz * RecolorColor.xyz; + // mad r0.xyz, r0, c1.x, -r2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + -temp2.xyz; + // mad r0.xyz, r1.z, r0, r2 + temp0.xyz = temp1.zzz * temp0.xyz + temp2.xyz; + // mul r2.xyz, r0, v0 + temp2.xyz = temp0.xyz * i.color.xyz; + // mul r0, r4, r2 + temp0 = temp4 * temp2; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 121 + compile ps_2_0 PS_L_Array_Shader_1(), // 122 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v3.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT2.xy, v2 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, v3 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 125 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 126 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, -0.3764706, 0, 0 + // dcl t0.xy + // dcl t2.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(DamagedTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // lrp r1.x, v0.x, c0.x, r0.w + temp1.x = lerp(temp0.w, float1(1), i.color.x); + // mad r0, r1.w, r1.x, c0.y + temp0 = temp1.w * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 127 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 128 +}; +// _CreateShadowMap_Expression33 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression33() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression34 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression34() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression35 Expression_2_0 Has PRES False +float Default_L_Expression35() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression36 Expression_2_0 Has PRES False +float Default_L_Expression36() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression37 Expression_2_0 Has PRES False +float Default_M_Expression37() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression38 Expression_2_0 Has PRES False +float Default_M_Expression38() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression39 Expression_2_0 Has PRES False +float Default_M_Expression39() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression40 Expression_2_0 Has PRES False +float Default_M_Expression40() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression41 Expression_2_0 Has PRES False +float Default_Expression41() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression42 Expression_2_0 Has PRES False +float Default_Expression42() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression43 Expression_2_0 Has PRES False +float Default_Expression43() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression44 Expression_2_0 Has PRES False +float Default_Expression44() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression44()]; // 99 + PixelShader = PS_H_Array[Default_Expression43()]; // 100 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } + pass p1 + { + VertexShader = VS_H_Frozen_Array[Default_Expression42()]; // 101 + PixelShader = PS_H_Frozen_Array[Default_Expression41()]; // 102 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression40()]; // 115 + PixelShader = PS_M_Array[Default_M_Expression39()]; // 116 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } + pass p1 + { + VertexShader = VS_M_Frozen_Array[Default_M_Expression38()]; // 117 + PixelShader = PS_M_Frozen_Array[Default_M_Expression37()]; // 118 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression36()]; // 123 + PixelShader = PS_L_Array[Default_L_Expression35()]; // 124 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression34()]; // 129 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression33()]; // 130 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/buildingsgeneric.fx b/buildingsgeneric.fx new file mode 100644 index 0000000..763a539 --- /dev/null +++ b/buildingsgeneric.fx @@ -0,0 +1,3149 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 47 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 49 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 52 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 57 +sampler2D SpecMapSampler = +sampler_state +{ + Texture = ; // 59 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DamagedTexture ; // 62 +sampler2D DamagedTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 64 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale = { 1 }; +float3 AmbientColor : register(vs_2_0, c11) : register(vs_3_0, c11) = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor : register(vs_2_0, c12) : register(vs_3_0, c12) = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +float EnvMult = { 1 }; +bool AlphaTestEnable = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c13) : register(vs_3_0, c13) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 81 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 84 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mul r0.xyz, r0, v6 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v6.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v7.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * DiffuseColor.xyz; + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mad r3.xyz, r4, c11, r3 + temp3.xyz = temp4.xyz * AmbientColor.xyz + temp3.xyz; + // mul r1.xyz, r3, v7 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c13 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 88 + compile vs_3_0 VS_H_Array_Shader_1(), // 89 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7, temp8; + float2 temp9; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r3, c12 + temp2.xyz = temp3.xyz * DiffuseColor.xyz; + // texld r4, v0, s3 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r4.xyz, r4, c0.y, c0.z + temp4.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r4.xy, r4, c11.x + temp4.xy = temp4.xy * BumpScale.xx; + // dp3 r5.x, r4, v1 + temp5.x = dot(temp4.xyz, i.texcoord1.xyz); + // dp3 r5.y, r4, v2 + temp5.y = dot(temp4.xyz, i.texcoord2.xyz); + // dp3 r5.z, r4, v3 + temp5.z = dot(temp4.xyz, i.texcoord3.xyz); + // nrm r4.xyz, r5 + temp4.xyz = normalize(temp5.xyz).xyz; + // texld r5, v0, s4 + temp5 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r4 + temp1.w = dot(temp1.xyz, temp4.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r4, -r1.w, r1 + temp1.xyz = temp4.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r5.x, r1 + temp1.xyz = temp5.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r3.x + temp5.x = log2(temp3.x); + // log r5.y, r3.y + temp5.y = log2(temp3.y); + // log r5.z, r3.z + temp5.z = log2(temp3.z); + // mul r3.xyz, r5, c0.x + temp3.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r3.x + temp5.x = exp2(temp3.x); + // exp r5.y, r3.y + temp5.y = exp2(temp3.y); + // exp r5.z, r3.z + temp5.z = exp2(temp3.z); + // dp3 r1.w, r4, c6 + temp1.w = dot(temp4.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r5, c5 + temp3.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r2, r2.w + temp5.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r5, r1 + temp1.xyz = temp3.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c3 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r7.xyz, -r5_abs.x, c89, r2.w + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r8.xyz, -r5_abs.x, c90, r2.w + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r9.xy, -r5_abs.x, c91, r2.w + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r7.xyz, -r5_abs.y, c92, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r4, r7 + temp2.w = dot(temp4.xyz, temp7.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r5, r3.w, r3 + temp3.xyz = temp5.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c0.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + float2 temp9; + // def c0, 2.2, 2, -1, -0 + // def c1, -0, -1, -2, -3 + // def c3, 0.25, 0, 0, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r3, c13 + temp2.xyz = temp3.xyz * DiffuseColor.xyz; + // texld r4, v0, s4 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r4.xyz, r4, c0.y, c0.z + temp4.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r4.xy, r4, c12.x + temp4.xy = temp4.xy * BumpScale.xx; + // dp3 r5.x, r4, v1 + temp5.x = dot(temp4.xyz, i.texcoord1.xyz); + // dp3 r5.y, r4, v2 + temp5.y = dot(temp4.xyz, i.texcoord2.xyz); + // dp3 r5.z, r4, v3 + temp5.z = dot(temp4.xyz, i.texcoord3.xyz); + // nrm r4.xyz, r5 + temp4.xyz = normalize(temp5.xyz).xyz; + // texld r5, v5, s0 + temp5 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r6.xy, c11.zxzw, v5 + temp6.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r6, r6, s0 + temp6 = tex2D(ShadowMapSampler, temp6.xy); + // add r6.yz, c11, v5.xxyw + temp6.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r7, r6.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp6.yz); + // add r6.yz, c11.xwzw, v5.xxyw + temp6.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r8, r6.yzzw, s0 + temp8 = tex2D(ShadowMapSampler, temp6.yz); + // mov r5.y, r6.x + temp5.y = temp6.x; + // mov r5.z, r7.x + temp5.z = temp7.x; + // mov r5.w, r8.x + temp5.w = temp8.x; + // add r5, r5, -v5.z + temp5 = temp5 + -i.texcoord5.z; + // cmp r5, r5, -c0.z, -c0.w + temp5 = (temp5 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r5 + temp1.w = dot(float4(1, 1, 1, 1), temp5); + // mul r1.w, r1.w, c3.x + temp1.w = temp1.w * float1(0.25); + // texld r5, v0, s5 + temp5 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r4, -r2.w, r1 + temp1.xyz = temp4.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r6, r1, s2 + temp6 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r6, c5 + temp1.xyz = temp6.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r5.x, r1 + temp1.xyz = temp5.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r3.x + temp5.x = log2(temp3.x); + // log r5.y, r3.y + temp5.y = log2(temp3.y); + // log r5.z, r3.z + temp5.z = log2(temp3.z); + // mul r3.xyz, r5, c0.x + temp3.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r3.x + temp5.x = exp2(temp3.x); + // exp r5.y, r3.y + temp5.y = exp2(temp3.y); + // exp r5.z, r3.z + temp5.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r5 + temp3.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r4, c6 + temp1.w = dot(temp4.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r2, r2.w + temp5.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r5, r1 + temp1.xyz = temp3.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, -c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r7.xyz, -r5_abs.x, c89, -r2.w + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r8.xyz, -r5_abs.x, c90, -r2.w + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r9.xy, -r5_abs.x, c91, -r2.w + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r7.xyz, -r5_abs.y, c92, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r4, r7 + temp2.w = dot(temp4.xyz, temp7.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r5, r3.w, r3 + temp3.xyz = temp5.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c0.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7, temp8; + float2 temp9; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r3, c12 + temp2.xyz = temp3.xyz * DiffuseColor.xyz; + // texld r4, v0, s3 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r4.xyz, r4, c0.y, c0.z + temp4.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r4.xy, r4, c11.x + temp4.xy = temp4.xy * BumpScale.xx; + // dp3 r5.x, r4, v1 + temp5.x = dot(temp4.xyz, i.texcoord1.xyz); + // dp3 r5.y, r4, v2 + temp5.y = dot(temp4.xyz, i.texcoord2.xyz); + // dp3 r5.z, r4, v3 + temp5.z = dot(temp4.xyz, i.texcoord3.xyz); + // nrm r4.xyz, r5 + temp4.xyz = normalize(temp5.xyz).xyz; + // texld r5, v0, s4 + temp5 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r4 + temp1.w = dot(temp1.xyz, temp4.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r4, -r1.w, r1 + temp1.xyz = temp4.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r5.x, r1 + temp1.xyz = temp5.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r3.x + temp5.x = log2(temp3.x); + // log r5.y, r3.y + temp5.y = log2(temp3.y); + // log r5.z, r3.z + temp5.z = log2(temp3.z); + // mul r3.xyz, r5, c0.x + temp3.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r3.x + temp5.x = exp2(temp3.x); + // exp r5.y, r3.y + temp5.y = exp2(temp3.y); + // exp r5.z, r3.z + temp5.z = exp2(temp3.z); + // dp3 r1.w, r4, c6 + temp1.w = dot(temp4.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r5, c5 + temp3.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r2, r2.w + temp5.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r5, r1 + temp1.xyz = temp3.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c3 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r7.xyz, -r5_abs.x, c89, r2.w + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r8.xyz, -r5_abs.x, c90, r2.w + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r9.xy, -r5_abs.x, c91, r2.w + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r7.xyz, -r5_abs.y, c92, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r4, r7 + temp2.w = dot(temp4.xyz, temp7.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r5, r3.w, r3 + temp3.xyz = temp5.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c0.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + float2 temp9; + // def c0, 2.2, 2, -1, -0 + // def c1, -0, -1, -2, -3 + // def c3, 0.25, 0, 0, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r3, c13 + temp2.xyz = temp3.xyz * DiffuseColor.xyz; + // texld r4, v0, s4 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r4.xyz, r4, c0.y, c0.z + temp4.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r4.xy, r4, c12.x + temp4.xy = temp4.xy * BumpScale.xx; + // dp3 r5.x, r4, v1 + temp5.x = dot(temp4.xyz, i.texcoord1.xyz); + // dp3 r5.y, r4, v2 + temp5.y = dot(temp4.xyz, i.texcoord2.xyz); + // dp3 r5.z, r4, v3 + temp5.z = dot(temp4.xyz, i.texcoord3.xyz); + // nrm r4.xyz, r5 + temp4.xyz = normalize(temp5.xyz).xyz; + // texld r5, v5, s0 + temp5 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r6.xy, c11.zxzw, v5 + temp6.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r6, r6, s0 + temp6 = tex2D(ShadowMapSampler, temp6.xy); + // add r6.yz, c11, v5.xxyw + temp6.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r7, r6.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp6.yz); + // add r6.yz, c11.xwzw, v5.xxyw + temp6.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r8, r6.yzzw, s0 + temp8 = tex2D(ShadowMapSampler, temp6.yz); + // mov r5.y, r6.x + temp5.y = temp6.x; + // mov r5.z, r7.x + temp5.z = temp7.x; + // mov r5.w, r8.x + temp5.w = temp8.x; + // add r5, r5, -v5.z + temp5 = temp5 + -i.texcoord5.z; + // cmp r5, r5, -c0.z, -c0.w + temp5 = (temp5 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r5 + temp1.w = dot(float4(1, 1, 1, 1), temp5); + // mul r1.w, r1.w, c3.x + temp1.w = temp1.w * float1(0.25); + // texld r5, v0, s5 + temp5 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r4, -r2.w, r1 + temp1.xyz = temp4.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r6, r1, s2 + temp6 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r6, c5 + temp1.xyz = temp6.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r5.x, r1 + temp1.xyz = temp5.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r3.x + temp5.x = log2(temp3.x); + // log r5.y, r3.y + temp5.y = log2(temp3.y); + // log r5.z, r3.z + temp5.z = log2(temp3.z); + // mul r3.xyz, r5, c0.x + temp3.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r3.x + temp5.x = exp2(temp3.x); + // exp r5.y, r3.y + temp5.y = exp2(temp3.y); + // exp r5.z, r3.z + temp5.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r5 + temp3.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r4, c6 + temp1.w = dot(temp4.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r2, r2.w + temp5.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r5, r1 + temp1.xyz = temp3.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, -c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r7.xyz, -r5_abs.x, c89, -r2.w + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r8.xyz, -r5_abs.x, c90, -r2.w + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r9.xy, -r5_abs.x, c91, -r2.w + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r7.xyz, -r5_abs.y, c92, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r4, r7 + temp2.w = dot(temp4.xyz, temp7.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r5, r3.w, r3 + temp3.xyz = temp5.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c0.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 90 + compile ps_3_0 PS_H_Array_Shader_1(), // 91 + compile ps_3_0 PS_H_Array_Shader_2(), // 92 + compile ps_3_0 PS_H_Array_Shader_3(), // 93 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r2, c11, r0 + temp0.xyz = temp2.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v6 + o.color = temp0 * i.color; + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c13 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c14.x + temp0.xy = temp0.xz * expr14.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v7.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v7 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c14.x + temp1.xy = temp1.xy * expr14.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 96 + compile vs_3_0 VS_M_Array_Shader_1(), // 97 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.z, c0.w + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c14.x + temp1.x = pow(temp0.x, SpecularExponent.x); + // cmp r0.x, -r0.y, c0.z, c0.w + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c13 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r0.xzw, r0.x, r1.xyyz + temp0.xzw = /* not implemented _pp modifier */ temp0.xxx * temp1.xyz; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r2.xyz, r1, c12 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r2, r0.y, r0.xzww + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.yyy + temp0.xzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, c0.w, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.w, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.w, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.x, c0.y + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yz, r0, c12.x + temp0.yz = /* not implemented _pp modifier */ temp0.yz * BumpScale.xx; + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.z, c0.w + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c15.x + temp1.x = pow(temp0.y, SpecularExponent.x); + // cmp r0.y, -r0.z, c0.z, c0.w + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c14 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r0.yzw, r0.y, r1.xxyz + temp0.yzw = /* not implemented _pp modifier */ temp0.yyy * temp1.xyz; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r2.xyz, r1, c13 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r2, r0.x, r0.yzww + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.xxx + temp0.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, c0.w, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.z, c0.w + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c14.x + temp1.x = pow(temp0.x, SpecularExponent.x); + // cmp r0.x, -r0.y, c0.z, c0.w + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c13 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r0.xzw, r0.x, r1.xyyz + temp0.xzw = /* not implemented _pp modifier */ temp0.xxx * temp1.xyz; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r2.xyz, r1, c12 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r2, r0.y, r0.xzww + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.yyy + temp0.xzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, c0.w, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.w, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.w, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.x, c0.y + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yz, r0, c12.x + temp0.yz = /* not implemented _pp modifier */ temp0.yz * BumpScale.xx; + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.z, c0.w + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c15.x + temp1.x = pow(temp0.y, SpecularExponent.x); + // cmp r0.y, -r0.z, c0.z, c0.w + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c14 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r0.yzw, r0.y, r1.xxyz + temp0.yzw = /* not implemented _pp modifier */ temp0.yyy * temp1.xyz; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r2.xyz, r1, c13 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r2, r0.x, r0.yzww + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.xxx + temp0.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, c0.w, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 98 + compile ps_3_0 PS_M_Array_Shader_1(), // 99 + compile ps_3_0 PS_M_Array_Shader_2(), // 100 + compile ps_3_0 PS_M_Array_Shader_3(), // 101 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v4 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c13.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v5.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v5 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 104 + compile vs_2_0 VS_L_Array_Shader_1(), // 105 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r3, v0.w, c0.x, r0 + temp3 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r3, r1 + temp0 = temp3 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r3, v0.w, c0.x, r0 + temp3 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r3, r1 + temp0 = temp3 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 106 + compile ps_2_0 PS_L_Array_Shader_1(), // 107 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v3.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT2.xy, v2 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, v3 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 110 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 111 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, -0.3764706, 0, 0 + // dcl t0.xy + // dcl t2.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(DamagedTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // lrp r1.x, v0.x, c0.x, r0.w + temp1.x = lerp(temp0.w, float1(1), i.color.x); + // mad r0, r1.w, r1.x, c0.y + temp0 = temp1.w * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 112 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 113 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 94 + PixelShader = PS_H_Array[Default_Expression26()]; // 95 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 102 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 103 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 108 + PixelShader = ; // 109 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 114 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 115 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/buildingsgenericdamagefill.fx b/buildingsgenericdamagefill.fx new file mode 100644 index 0000000..ff5bdda --- /dev/null +++ b/buildingsgenericdamagefill.fx @@ -0,0 +1,3171 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 47 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 49 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 52 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 57 +sampler2D SpecMapSampler = +sampler_state +{ + Texture = ; // 59 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DamagedTexture ; // 62 +sampler2D DamagedTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 64 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale = { 1 }; +float3 AmbientColor : register(vs_2_0, c11) : register(vs_3_0, c11) = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor : register(vs_2_0, c12) : register(vs_3_0, c12) = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +float EnvMult = { 1 }; +bool AlphaTestEnable = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c13) : register(vs_3_0, c13) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 81 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 84 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mul r0.xyz, r0, v6 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v6.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v7.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * DiffuseColor.xyz; + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mad r3.xyz, r4, c11, r3 + temp3.xyz = temp4.xyz * AmbientColor.xyz + temp3.xyz; + // mul r1.xyz, r3, v7 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c13 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 88 + compile vs_3_0 VS_H_Array_Shader_1(), // 89 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7, temp8; + float2 temp9; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r3, c12 + temp2.xyz = temp3.xyz * DiffuseColor.xyz; + // texld r4, v0, s3 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r4.xyz, r4, c0.y, c0.z + temp4.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r4.xy, r4, c11.x + temp4.xy = temp4.xy * BumpScale.xx; + // dp3 r5.x, r4, v1 + temp5.x = dot(temp4.xyz, i.texcoord1.xyz); + // dp3 r5.y, r4, v2 + temp5.y = dot(temp4.xyz, i.texcoord2.xyz); + // dp3 r5.z, r4, v3 + temp5.z = dot(temp4.xyz, i.texcoord3.xyz); + // nrm r4.xyz, r5 + temp4.xyz = normalize(temp5.xyz).xyz; + // texld r5, v0, s4 + temp5 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r4 + temp1.w = dot(temp1.xyz, temp4.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r4, -r1.w, r1 + temp1.xyz = temp4.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r5.x, r1 + temp1.xyz = temp5.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r3.x + temp5.x = log2(temp3.x); + // log r5.y, r3.y + temp5.y = log2(temp3.y); + // log r5.z, r3.z + temp5.z = log2(temp3.z); + // mul r3.xyz, r5, c0.x + temp3.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r3.x + temp5.x = exp2(temp3.x); + // exp r5.y, r3.y + temp5.y = exp2(temp3.y); + // exp r5.z, r3.z + temp5.z = exp2(temp3.z); + // dp3 r1.w, r4, c6 + temp1.w = dot(temp4.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r5, c5 + temp3.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r2, r2.w + temp5.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r5, r1 + temp1.xyz = temp3.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c3 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r7.xyz, -r5_abs.x, c89, r2.w + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r8.xyz, -r5_abs.x, c90, r2.w + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r9.xy, -r5_abs.x, c91, r2.w + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r7.xyz, -r5_abs.y, c92, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r4, r7 + temp2.w = dot(temp4.xyz, temp7.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r5, r3.w, r3 + temp3.xyz = temp5.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // add r2.x, -c0.z, -v6.w + temp2.x = float1(1) + -i.color.w; + // mul r1, r1, r2.x + temp1 = temp1 * temp2.x; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + float2 temp9; + // def c0, 2.2, 2, -1, -0 + // def c1, -0, -1, -2, -3 + // def c3, 0.25, 0, 0, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r3, c13 + temp2.xyz = temp3.xyz * DiffuseColor.xyz; + // texld r4, v0, s4 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r4.xyz, r4, c0.y, c0.z + temp4.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r4.xy, r4, c12.x + temp4.xy = temp4.xy * BumpScale.xx; + // dp3 r5.x, r4, v1 + temp5.x = dot(temp4.xyz, i.texcoord1.xyz); + // dp3 r5.y, r4, v2 + temp5.y = dot(temp4.xyz, i.texcoord2.xyz); + // dp3 r5.z, r4, v3 + temp5.z = dot(temp4.xyz, i.texcoord3.xyz); + // nrm r4.xyz, r5 + temp4.xyz = normalize(temp5.xyz).xyz; + // texld r5, v5, s0 + temp5 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r6.xy, c11.zxzw, v5 + temp6.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r6, r6, s0 + temp6 = tex2D(ShadowMapSampler, temp6.xy); + // add r6.yz, c11, v5.xxyw + temp6.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r7, r6.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp6.yz); + // add r6.yz, c11.xwzw, v5.xxyw + temp6.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r8, r6.yzzw, s0 + temp8 = tex2D(ShadowMapSampler, temp6.yz); + // mov r5.y, r6.x + temp5.y = temp6.x; + // mov r5.z, r7.x + temp5.z = temp7.x; + // mov r5.w, r8.x + temp5.w = temp8.x; + // add r5, r5, -v5.z + temp5 = temp5 + -i.texcoord5.z; + // cmp r5, r5, -c0.z, -c0.w + temp5 = (temp5 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r5 + temp1.w = dot(float4(1, 1, 1, 1), temp5); + // mul r1.w, r1.w, c3.x + temp1.w = temp1.w * float1(0.25); + // texld r5, v0, s5 + temp5 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r4, -r2.w, r1 + temp1.xyz = temp4.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r6, r1, s2 + temp6 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r6, c5 + temp1.xyz = temp6.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r5.x, r1 + temp1.xyz = temp5.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r3.x + temp5.x = log2(temp3.x); + // log r5.y, r3.y + temp5.y = log2(temp3.y); + // log r5.z, r3.z + temp5.z = log2(temp3.z); + // mul r3.xyz, r5, c0.x + temp3.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r3.x + temp5.x = exp2(temp3.x); + // exp r5.y, r3.y + temp5.y = exp2(temp3.y); + // exp r5.z, r3.z + temp5.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r5 + temp3.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r4, c6 + temp1.w = dot(temp4.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r2, r2.w + temp5.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r5, r1 + temp1.xyz = temp3.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, -c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r7.xyz, -r5_abs.x, c89, -r2.w + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r8.xyz, -r5_abs.x, c90, -r2.w + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r9.xy, -r5_abs.x, c91, -r2.w + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r7.xyz, -r5_abs.y, c92, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r4, r7 + temp2.w = dot(temp4.xyz, temp7.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r5, r3.w, r3 + temp3.xyz = temp5.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // add r2.x, -c0.z, -v7.w + temp2.x = float1(1) + -i.color.w; + // mul r1, r1, r2.x + temp1 = temp1 * temp2.x; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7, temp8; + float2 temp9; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r3, c12 + temp2.xyz = temp3.xyz * DiffuseColor.xyz; + // texld r4, v0, s3 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r4.xyz, r4, c0.y, c0.z + temp4.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r4.xy, r4, c11.x + temp4.xy = temp4.xy * BumpScale.xx; + // dp3 r5.x, r4, v1 + temp5.x = dot(temp4.xyz, i.texcoord1.xyz); + // dp3 r5.y, r4, v2 + temp5.y = dot(temp4.xyz, i.texcoord2.xyz); + // dp3 r5.z, r4, v3 + temp5.z = dot(temp4.xyz, i.texcoord3.xyz); + // nrm r4.xyz, r5 + temp4.xyz = normalize(temp5.xyz).xyz; + // texld r5, v0, s4 + temp5 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r4 + temp1.w = dot(temp1.xyz, temp4.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r4, -r1.w, r1 + temp1.xyz = temp4.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r5.x, r1 + temp1.xyz = temp5.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r3.x + temp5.x = log2(temp3.x); + // log r5.y, r3.y + temp5.y = log2(temp3.y); + // log r5.z, r3.z + temp5.z = log2(temp3.z); + // mul r3.xyz, r5, c0.x + temp3.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r3.x + temp5.x = exp2(temp3.x); + // exp r5.y, r3.y + temp5.y = exp2(temp3.y); + // exp r5.z, r3.z + temp5.z = exp2(temp3.z); + // dp3 r1.w, r4, c6 + temp1.w = dot(temp4.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r5, c5 + temp3.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r2, r2.w + temp5.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r5, r1 + temp1.xyz = temp3.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c3 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r7.xyz, -r5_abs.x, c89, r2.w + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r8.xyz, -r5_abs.x, c90, r2.w + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r9.xy, -r5_abs.x, c91, r2.w + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r7.xyz, -r5_abs.y, c92, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r4, r7 + temp2.w = dot(temp4.xyz, temp7.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r5, r3.w, r3 + temp3.xyz = temp5.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // add r2.x, -c0.z, -v6.w + temp2.x = float1(1) + -i.color.w; + // mul r1, r1, r2.x + temp1 = temp1 * temp2.x; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + float2 temp9; + // def c0, 2.2, 2, -1, -0 + // def c1, -0, -1, -2, -3 + // def c3, 0.25, 0, 0, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r3, c13 + temp2.xyz = temp3.xyz * DiffuseColor.xyz; + // texld r4, v0, s4 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r4.xyz, r4, c0.y, c0.z + temp4.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r4.xy, r4, c12.x + temp4.xy = temp4.xy * BumpScale.xx; + // dp3 r5.x, r4, v1 + temp5.x = dot(temp4.xyz, i.texcoord1.xyz); + // dp3 r5.y, r4, v2 + temp5.y = dot(temp4.xyz, i.texcoord2.xyz); + // dp3 r5.z, r4, v3 + temp5.z = dot(temp4.xyz, i.texcoord3.xyz); + // nrm r4.xyz, r5 + temp4.xyz = normalize(temp5.xyz).xyz; + // texld r5, v5, s0 + temp5 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r6.xy, c11.zxzw, v5 + temp6.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r6, r6, s0 + temp6 = tex2D(ShadowMapSampler, temp6.xy); + // add r6.yz, c11, v5.xxyw + temp6.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r7, r6.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp6.yz); + // add r6.yz, c11.xwzw, v5.xxyw + temp6.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r8, r6.yzzw, s0 + temp8 = tex2D(ShadowMapSampler, temp6.yz); + // mov r5.y, r6.x + temp5.y = temp6.x; + // mov r5.z, r7.x + temp5.z = temp7.x; + // mov r5.w, r8.x + temp5.w = temp8.x; + // add r5, r5, -v5.z + temp5 = temp5 + -i.texcoord5.z; + // cmp r5, r5, -c0.z, -c0.w + temp5 = (temp5 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r5 + temp1.w = dot(float4(1, 1, 1, 1), temp5); + // mul r1.w, r1.w, c3.x + temp1.w = temp1.w * float1(0.25); + // texld r5, v0, s5 + temp5 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r4, -r2.w, r1 + temp1.xyz = temp4.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r6, r1, s2 + temp6 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r6, c5 + temp1.xyz = temp6.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r5.x, r1 + temp1.xyz = temp5.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r3.x + temp5.x = log2(temp3.x); + // log r5.y, r3.y + temp5.y = log2(temp3.y); + // log r5.z, r3.z + temp5.z = log2(temp3.z); + // mul r3.xyz, r5, c0.x + temp3.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r3.x + temp5.x = exp2(temp3.x); + // exp r5.y, r3.y + temp5.y = exp2(temp3.y); + // exp r5.z, r3.z + temp5.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r5 + temp3.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r4, c6 + temp1.w = dot(temp4.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r2, r2.w + temp5.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r5, r1 + temp1.xyz = temp3.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, -c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r7.xyz, -r5_abs.x, c89, -r2.w + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r8.xyz, -r5_abs.x, c90, -r2.w + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r9.xy, -r5_abs.x, c91, -r2.w + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r7.xyz, -r5_abs.y, c92, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r4, r7 + temp2.w = dot(temp4.xyz, temp7.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r5, r3.w, r3 + temp3.xyz = temp5.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // add r2.x, -c0.z, -v7.w + temp2.x = float1(1) + -i.color.w; + // mul r1, r1, r2.x + temp1 = temp1 * temp2.x; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 90 + compile ps_3_0 PS_H_Array_Shader_1(), // 91 + compile ps_3_0 PS_H_Array_Shader_2(), // 92 + compile ps_3_0 PS_H_Array_Shader_3(), // 93 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r2, c11, r0 + temp0.xyz = temp2.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v6 + o.color = temp0 * i.color; + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c13 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c14.x + temp0.xy = temp0.xz * expr14.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v7.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v7 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c14.x + temp1.xy = temp1.xy * expr14.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 96 + compile vs_3_0 VS_M_Array_Shader_1(), // 97 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.z, c0.w + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c14.x + temp1.x = pow(temp0.x, SpecularExponent.x); + // cmp r0.x, -r0.y, c0.z, c0.w + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c13 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r0.xzw, r0.x, r1.xyyz + temp0.xzw = /* not implemented _pp modifier */ temp0.xxx * temp1.xyz; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r2.xyz, r1, c12 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r2, r0.y, r0.xzww + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.yyy + temp0.xzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // add r2.x, c0.w, -v3.w + temp2.x = float1(1) + -i.color.w; + // mul r0, r0, r2.x + temp0 = temp0 * temp2.x; + // mul_pp r0, r1, r0 + temp0 = /* not implemented _pp modifier */ temp1 * temp0; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.w, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.w, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.x, c0.y + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yz, r0, c12.x + temp0.yz = /* not implemented _pp modifier */ temp0.yz * BumpScale.xx; + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.z, c0.w + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c15.x + temp1.x = pow(temp0.y, SpecularExponent.x); + // cmp r0.y, -r0.z, c0.z, c0.w + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c14 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r0.yzw, r0.y, r1.xxyz + temp0.yzw = /* not implemented _pp modifier */ temp0.yyy * temp1.xyz; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r2.xyz, r1, c13 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r2, r0.x, r0.yzww + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.xxx + temp0.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // add r2.x, c0.w, -v4.w + temp2.x = float1(1) + -i.color.w; + // mul r0, r0, r2.x + temp0 = temp0 * temp2.x; + // mul_pp r0, r1, r0 + temp0 = /* not implemented _pp modifier */ temp1 * temp0; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.z, c0.w + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c14.x + temp1.x = pow(temp0.x, SpecularExponent.x); + // cmp r0.x, -r0.y, c0.z, c0.w + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c13 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r0.xzw, r0.x, r1.xyyz + temp0.xzw = /* not implemented _pp modifier */ temp0.xxx * temp1.xyz; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r2.xyz, r1, c12 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r2, r0.y, r0.xzww + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.yyy + temp0.xzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // add r2.x, c0.w, -v3.w + temp2.x = float1(1) + -i.color.w; + // mul r0, r0, r2.x + temp0 = temp0 * temp2.x; + // mul_pp r0, r1, r0 + temp0 = /* not implemented _pp modifier */ temp1 * temp0; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.w, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.w, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.x, c0.y + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yz, r0, c12.x + temp0.yz = /* not implemented _pp modifier */ temp0.yz * BumpScale.xx; + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.z, c0.w + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c15.x + temp1.x = pow(temp0.y, SpecularExponent.x); + // cmp r0.y, -r0.z, c0.z, c0.w + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c14 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r0.yzw, r0.y, r1.xxyz + temp0.yzw = /* not implemented _pp modifier */ temp0.yyy * temp1.xyz; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r2.xyz, r1, c13 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r2, r0.x, r0.yzww + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.xxx + temp0.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // add r2.x, c0.w, -v4.w + temp2.x = float1(1) + -i.color.w; + // mul r0, r0, r2.x + temp0 = temp0 * temp2.x; + // mul_pp r0, r1, r0 + temp0 = /* not implemented _pp modifier */ temp1 * temp0; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 98 + compile ps_3_0 PS_M_Array_Shader_1(), // 99 + compile ps_3_0 PS_M_Array_Shader_2(), // 100 + compile ps_3_0 PS_M_Array_Shader_3(), // 101 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v4 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c13.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v5.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v5 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 104 + compile vs_2_0 VS_L_Array_Shader_1(), // 105 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // add r2.w, -v0.w, c0.x + temp2.w = -i.color.w + float1(1); + // mul r0, r0, r2.w + temp0 = temp0 * temp2.w; + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // add r2.w, -v0.w, c0.x + temp2.w = -i.color.w + float1(1); + // mul r0, r0, r2.w + temp0 = temp0 * temp2.w; + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 106 + compile ps_2_0 PS_L_Array_Shader_1(), // 107 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v3.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT2.xy, v2 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, v3 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 110 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 111 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, -0.3764706, 0, 0 + // dcl t0.xy + // dcl t2.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(DamagedTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // add r0.x, -v0.x, c0.x + temp0.x = -i.color.x + float1(1); + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // mad r0, r1.w, r0.x, c0.y + temp0 = temp1.w * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 112 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 113 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 94 + PixelShader = PS_H_Array[Default_Expression26()]; // 95 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 102 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 103 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 108 + PixelShader = ; // 109 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 114 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 115 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/buildingsgenericfrozen.fx b/buildingsgenericfrozen.fx new file mode 100644 index 0000000..32d879c --- /dev/null +++ b/buildingsgenericfrozen.fx @@ -0,0 +1,5374 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture FractalNormalMap ; // 47 +sampler2D FractalNormalMapSampler = +sampler_state +{ + Texture = ; // 50 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 54 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 59 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 64 +sampler2D SpecMapSampler = +sampler_state +{ + Texture = ; // 66 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DamagedTexture ; // 69 +sampler2D DamagedTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 71 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 78 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 81 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mov r1.xyz, c9 + temp1.xyz = DirectionalLight[2].Color.xyz; + // mad r0.xyz, r1, r0.x, c4 + temp0.xyz = temp1.xyz * temp0.xxx + AmbientLightColor.xyz; + // mul r0.xyz, r0, v6 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v6.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v7.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r1.xyz, r3, v7 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 85 + compile vs_3_0 VS_H_Array_Shader_1(), // 86 +}; +// VS_H_Frozen_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Frozen_Array_Shader_0_Output VS_H_Frozen_Array_Shader_0(VS_H_Frozen_Array_Shader_0_Input i) +{ + VS_H_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 1, 0, 1.5, 0.5 + // def c2, 0.015, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // dp3 r2.x, v1, c124 + temp2.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v1, c125 + temp2.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v1, c126 + temp2.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.y + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r0.xyz, r3, v5 + temp0.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mad r0.xyz, r2, c0.z, r1 + temp0.xyz = temp2.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mul o1.xy, r0, c2.x + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r1.x, v3, c124 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // dp3 r1.x, v2, c124 + temp1.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r1.x + o.texcoord1.y = -temp1.x; + // dp3 r1.x, v3, c125 + temp1.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r1.x + o.texcoord2.x = -temp1.x; + // dp3 r1.x, v2, c125 + temp1.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r1.x + o.texcoord2.y = -temp1.x; + // dp3 r1.x, v3, c126 + temp1.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r1.x + o.texcoord3.x = -temp1.x; + // dp3 r1.x, v2, c126 + temp1.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r1.x + o.texcoord3.y = -temp1.x; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Frozen_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Frozen_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Frozen_Array_Shader_1_Output VS_H_Frozen_Array_Shader_1(VS_H_Frozen_Array_Shader_1_Input i) +{ + VS_H_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 1.5, 0 + // def c2, 0.5, 0.015, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.w + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r2, c0.z, r0 + temp0.xyz = temp2.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mul o1.xy, r0, c2.y + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.zzww + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Frozen_Array[2] = { + compile vs_3_0 VS_H_Frozen_Array_Shader_0(), // 87 + compile vs_3_0 VS_H_Frozen_Array_Shader_1(), // 88 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s3 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v5.zwzw, s0 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, -c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c1 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c0.x + temp7.x = float1(0); + // cmp r7.yzw, -r5_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r5_abs.x, c90, r7.x + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r5_abs.x, c91, r7.x + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r5_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s4 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v6.zwzw, s1 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r1.w, r5 + temp4.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r4, c5 + temp4.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c1.y + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r5_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r5_abs.x, c90, r7.y + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r5_abs.x, c91, r7.y + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r5_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s3 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v5.zwzw, s0 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, -c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c1 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c0.x + temp7.x = float1(0); + // cmp r7.yzw, -r5_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r5_abs.x, c90, r7.x + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r5_abs.x, c91, r7.x + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r5_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s4 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v6.zwzw, s1 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r1.w, r5 + temp4.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r4, c5 + temp4.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c1.y + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r5_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r5_abs.x, c90, r7.y + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r5_abs.x, c91, r7.y + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r5_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 89 + compile ps_3_0 PS_H_Array_Shader_1(), // 90 + compile ps_3_0 PS_H_Array_Shader_2(), // 91 + compile ps_3_0 PS_H_Array_Shader_3(), // 92 +}; +// PS_H_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_0(PS_H_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2, -1, 3, 1 + // def c1, 2.2, 0, 0, 0 + // def c2, 0.13, 0.33, 0.5, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6.w + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s2 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c0.x, c0.y + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, c0.zzww + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r2.w, r3 + temp3.xyz = temp2.www * temp3.xyz; + // mul r3.xyz, r3, c2 + temp3.xyz = temp3.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, c5, r3 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2.w, c7 + temp3.xyz = temp2.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r3, c2, r1 + temp1.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.w + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, c2, r1 + temp0.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, c0.w, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_1(PS_H_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 2.2 + // def c2, 2, -1, 3, 1 + // def c3, 0.13, 0.33, 0.5, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7.w + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s3 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c2.x, c2.y + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, c2.zzww + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, c2.w, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.w + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r2.w, r2, c6 + temp2.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.w, r3 + temp3.xyz = temp3.www * temp3.xyz; + // mul r3.xyz, r3, c3 + temp3.xyz = temp3.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, r1.w, r3 + temp1.xyz = temp1.xyz * temp1.www + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2.w, c7 + temp3.xyz = temp2.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r3, c3, r1 + temp1.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c2.w + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, c2.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, c3, r1 + temp0.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, c2.w, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_2(PS_H_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2, -1, 3, 1 + // def c1, 2.2, 0, 0, 0 + // def c2, 0.13, 0.33, 0.5, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6.w + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s2 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c0.x, c0.y + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, c0.zzww + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r2.w, r3 + temp3.xyz = temp2.www * temp3.xyz; + // mul r3.xyz, r3, c2 + temp3.xyz = temp3.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, c5, r3 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2.w, c7 + temp3.xyz = temp2.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r3, c2, r1 + temp1.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.w + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, c2, r1 + temp0.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, c0.w, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_3(PS_H_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 2.2 + // def c2, 2, -1, 3, 1 + // def c3, 0.13, 0.33, 0.5, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7.w + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s3 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c2.x, c2.y + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, c2.zzww + temp2.xyz = temp2.xyz * float3(3, 3, 1); + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, c2.w, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.w + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r2.w, r2, c6 + temp2.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.w, r3 + temp3.xyz = temp3.www * temp3.xyz; + // mul r3.xyz, r3, c3 + temp3.xyz = temp3.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, r1.w, r3 + temp1.xyz = temp1.xyz * temp1.www + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2.w, c7 + temp3.xyz = temp2.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r3, c3, r1 + temp1.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c2.w + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, c2.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, c3, r1 + temp0.xyz = temp3.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, c2.w, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Frozen_Array[4] = { + compile ps_3_0 PS_H_Frozen_Array_Shader_0(), // 93 + compile ps_3_0 PS_H_Frozen_Array_Shader_1(), // 94 + compile ps_3_0 PS_H_Frozen_Array_Shader_2(), // 95 + compile ps_3_0 PS_H_Frozen_Array_Shader_3(), // 96 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v6 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c12.x + temp0.xy = temp0.xz * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v7.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v7 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 101 + compile vs_3_0 VS_M_Array_Shader_1(), // 102 +}; +// VS_M_Frozen_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Frozen_Array_Shader_0_Output VS_M_Frozen_Array_Shader_0(VS_M_Frozen_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, 1.5, 0.015 + // def c2, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mad r1.xyz, r0, c0.z, r1 + temp1.xyz = temp0.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r2.x, v3, c124 + temp2.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v3, c125 + temp2.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v3, c126 + temp2.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r2 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v2, c124 + temp3.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v2, c125 + temp3.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v2, c126 + temp3.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r3 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 o2.z, c6, r0 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp0.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r0 + temp2.z = dot(temp4.xyz, temp0.xyz); + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r2, r0.w + o.texcoord2 = temp2 * temp0.w; + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.x, r0, c8 + temp0.x = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.y, r0.w, c0.y + temp0.y = max(temp0.w, float1(0)); + // mul r0.yzw, r0.y, c9.xxyz + temp0.yzw = temp0.yyy * DirectionalLight[2].Color.xyz; + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c7, r0.x, r0.yzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.xxx + temp0.yzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // mul o1.xy, r1, c0.w + o.texcoord.xy = temp1.xy * float2(0.015, 0.015); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xy, c2 + temp0.xy = float2(1, -1); + // mul r0.xy, r0, c12.x + temp0.xy = temp0.xy * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o5.w, r0.w + o.texcoord4.w = temp0.w; + // mad o5.xyz, r0, r1.x, c2.zzww + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Frozen_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Frozen_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Frozen_Array_Shader_1_Output VS_M_Frozen_Array_Shader_1(VS_M_Frozen_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 1.5, 0 + // def c2, 0.015, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mad r0.xyz, r1, c0.z, r0 + temp0.xyz = temp1.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r2, v3.zxyy, c128[a0.x].yzxy + temp2 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.x, c6, -r2 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.y, c6, -r3 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 o2.z, c6, r1 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp1.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r1 + temp2.z = dot(temp4.xyz, temp1.xyz); + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r2, r1.w + o.texcoord2 = temp2 * temp1.w; + // dp3 r1.w, r1, c10 + temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.x, r1, c8 + temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r1.y, r1.w, c0.w + temp1.y = max(temp1.w, float1(0)); + // mul r1.yzw, r1.y, c9.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz; + // max r1.x, r1.x, c0.w + temp1.x = max(temp1.x, float1(0)); + // mad r1.xyz, c7, r1.x, r1.yzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // mul o1.xy, r0, c2.x + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.w + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Frozen_Array[2] = { + compile vs_3_0 VS_M_Frozen_Array_Shader_0(), // 103 + compile vs_3_0 VS_M_Frozen_Array_Shader_1(), // 104 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c1.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c1.y, c1.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c1.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.x, c0.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c0.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c0.x, c0.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c1.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c1.y, c1.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c1.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.x, c0.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c0.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c0.x, c0.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 105 + compile ps_3_0 PS_M_Array_Shader_1(), // 106 + compile ps_3_0 PS_M_Array_Shader_2(), // 107 + compile ps_3_0 PS_M_Array_Shader_3(), // 108 +}; +// PS_M_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_0(PS_M_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3.w + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // mad_pp r0.xyz, r0.y, c2, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp0.yyy * float3(0.13, 0.33, 0.5) + temp0.xxx; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov_pp r0.w, r1.w + temp0.w = /* not implemented _pp modifier */ temp1.w; + // mul_pp r0, r0, r2 + temp0 = /* not implemented _pp modifier */ temp0 * temp2; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_1(PS_M_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.8, 2, -1, -3 + // def c1, 0, 1, 50, 0.25 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4.w + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.y, c0.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c0.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c0.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // mad_pp r0.xyz, r0.x, c2, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.13, 0.33, 0.5) + temp0.yyy; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c0.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov_pp r0.w, r1.w + temp0.w = /* not implemented _pp modifier */ temp1.w; + // mul_pp r0, r0, r2 + temp0 = /* not implemented _pp modifier */ temp0 * temp2; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_2(PS_M_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3.w + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // mad_pp r0.xyz, r0.y, c2, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp0.yyy * float3(0.13, 0.33, 0.5) + temp0.xxx; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov_pp r0.w, r1.w + temp0.w = /* not implemented _pp modifier */ temp1.w; + // mul_pp r0, r0, r2 + temp0 = /* not implemented _pp modifier */ temp0 * temp2; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_3(PS_M_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.8, 2, -1, -3 + // def c1, 0, 1, 50, 0.25 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4.w + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.y, c0.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c0.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c0.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // mad_pp r0.xyz, r0.x, c2, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.13, 0.33, 0.5) + temp0.yyy; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c0.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov_pp r0.w, r1.w + temp0.w = /* not implemented _pp modifier */ temp1.w; + // mul_pp r0, r0, r2 + temp0 = /* not implemented _pp modifier */ temp0 * temp2; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // + + return out_color; +} + +PixelShader PS_M_Frozen_Array[4] = { + compile ps_3_0 PS_M_Frozen_Array_Shader_0(), // 109 + compile ps_3_0 PS_M_Frozen_Array_Shader_1(), // 110 + compile ps_3_0 PS_M_Frozen_Array_Shader_2(), // 111 + compile ps_3_0 PS_M_Frozen_Array_Shader_3(), // 112 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v4 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v5.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v5 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 117 + compile vs_2_0 VS_L_Array_Shader_1(), // 118 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r3, v0.w, c0.x, r0 + temp3 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r3, r1 + temp0 = temp3 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r3, v0.w, c0.x, r0 + temp3 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r3, r1 + temp0 = temp3 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 119 + compile ps_2_0 PS_L_Array_Shader_1(), // 120 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v3.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT2.xy, v2 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, v3 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 123 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 124 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, -0.3764706, 0, 0 + // dcl t0.xy + // dcl t2.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(DamagedTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // lrp r1.x, v0.x, c0.x, r0.w + temp1.x = lerp(temp0.w, float1(1), i.color.x); + // mad r0, r1.w, r1.x, c0.y + temp0 = temp1.w * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 125 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 126 +}; +// _CreateShadowMap_Expression33 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression33() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression34 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression34() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression35 Expression_2_0 Has PRES False +float Default_L_Expression35() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression36 Expression_2_0 Has PRES False +float Default_M_Expression36() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression37 Expression_2_0 Has PRES False +float Default_M_Expression37() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression38 Expression_2_0 Has PRES False +float Default_M_Expression38() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression39 Expression_2_0 Has PRES False +float Default_M_Expression39() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression40 Expression_2_0 Has PRES False +float Default_Expression40() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression41 Expression_2_0 Has PRES False +float Default_Expression41() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression42 Expression_2_0 Has PRES False +float Default_Expression42() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression43 Expression_2_0 Has PRES False +float Default_Expression43() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression43()]; // 97 + PixelShader = PS_H_Array[Default_Expression42()]; // 98 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } + pass p1 + { + VertexShader = VS_H_Frozen_Array[Default_Expression41()]; // 99 + PixelShader = PS_H_Frozen_Array[Default_Expression40()]; // 100 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression39()]; // 113 + PixelShader = PS_M_Array[Default_M_Expression38()]; // 114 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } + pass p1 + { + VertexShader = VS_M_Frozen_Array[Default_M_Expression37()]; // 115 + PixelShader = PS_M_Frozen_Array[Default_M_Expression36()]; // 116 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression35()]; // 121 + PixelShader = ; // 122 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression34()]; // 127 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression33()]; // 128 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/buildingsjapan.fx b/buildingsjapan.fx new file mode 100644 index 0000000..19a5912 --- /dev/null +++ b/buildingsjapan.fx @@ -0,0 +1,3168 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 49 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 51 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 54 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 59 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DamagedTexture ; // 64 +sampler2D DamagedTextureSampler = +sampler_state +{ + Texture = ; // 66 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 73 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 76 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.1, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mov r1.z, c0.z + temp1.z = float1(0.1); + // mad r0.xyz, c4, r1.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp1.zzz + temp0.xyz; + // mul r0.xyz, r0, v6 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v6.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.5, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v7.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mov r2.w, c0.w + temp2.w = float1(0.1); + // mad r3.xyz, c4, r2.w, r3 + temp3.xyz = AmbientLightColor.xyz * temp2.www + temp3.xyz; + // mul r1.xyz, r3, v7 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 80 + compile vs_3_0 VS_H_Array_Shader_1(), // 81 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s3 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(1.5, 1.5, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v5.zwzw, s0 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, -c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c1 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c0.x + temp7.x = float1(0); + // cmp r7.yzw, -r5_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r5_abs.x, c90, r7.x + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r5_abs.x, c91, r7.x + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r5_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -1.5 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s4 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(1.5, 1.5, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v6.zwzw, s1 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r1.w, r5 + temp4.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r4, c5 + temp4.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c1.y + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r5_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r5_abs.x, c90, r7.y + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r5_abs.x, c91, r7.y + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r5_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp6, temp7; + float3 temp5, temp8; + float2 temp9; + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // def c4, 2, 2.2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r2.yzw, r2.z, r3.xxyz, r0.xxyz + temp2.yzw = temp2.zzz * temp3.xyz + temp0.xyz; + // log r3.x, r2.y + temp3.x = log2(temp2.y); + // log r3.y, r2.z + temp3.y = log2(temp2.z); + // log r3.z, r2.w + temp3.z = log2(temp2.w); + // mul r2.yzw, r3.xxyz, c4.y + temp2.yzw = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.y + temp3.x = exp2(temp2.y); + // exp r3.y, r2.z + temp3.y = exp2(temp2.z); + // exp r3.z, r2.w + temp3.z = exp2(temp2.w); + // texld r4, v0, s3 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.yzw, r4.xxyz, c4.x, c4.z + temp2.yzw = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.yzw, r2, -c4.xwwz + temp2.yzw = temp2.yzw * float3(1.5, 1.5, 1); + // dp3 r4.x, r2.yzww, v1 + temp4.x = dot(temp2.yzw, i.texcoord1.xyz); + // dp3 r4.y, r2.yzww, v2 + temp4.y = dot(temp2.yzw, i.texcoord2.xyz); + // dp3 r4.z, r2.yzww, v3 + temp4.z = dot(temp2.yzw, i.texcoord3.xyz); + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r1.w, r1, r5 + temp1.w = dot(temp1.xyz, temp5.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r5, -r1.w, r1 + temp1.xyz = temp5.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c4.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r5, c6 + temp1.w = dot(temp5.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3, r2.x + temp4.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r5, c8 + temp1.w = dot(temp5.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r3, r2.x + temp2.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c1.x + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c3 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c1.x + temp7.x = float1(0); + // cmp r7.yzw, -r4_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r4_abs.x, c90, r7.x + temp8.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r4_abs.x, c91, r7.x + temp9.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r4_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r4_abs.y, c93, r8 + temp8.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.y, c94, r9 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r4_abs.z, c95, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.z, c96, r8 + temp8.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r4_abs.w, c98, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.w, c99, r8 + temp8.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.x, c103, r4 + temp4.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.y, c106, r4 + temp4.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.z, c109, r4 + temp4.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.w, c112, r4 + temp4.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c4.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r5, r7 + temp2.w = dot(temp5.xyz, temp7.xyz); + // max r3.w, r2.w, c1.x + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r3, r1 + temp0.xyz = temp2.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c4.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp6, temp7, temp8; + float3 temp5; + float2 temp9; + // def c1, 1, 0, 0.25, 0 + // def c3, 2, 2.2, -1, -1.5 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c3.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r2.yzw, r2.z, r3.xxyz, r0.xxyz + temp2.yzw = temp2.zzz * temp3.xyz + temp0.xyz; + // log r3.x, r2.y + temp3.x = log2(temp2.y); + // log r3.y, r2.z + temp3.y = log2(temp2.z); + // log r3.z, r2.w + temp3.z = log2(temp2.w); + // mul r2.yzw, r3.xxyz, c3.y + temp2.yzw = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.y + temp3.x = exp2(temp2.y); + // exp r3.y, r2.z + temp3.y = exp2(temp2.z); + // exp r3.z, r2.w + temp3.z = exp2(temp2.w); + // texld r4, v0, s4 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.yzw, r4.xxyz, c3.x, c3.z + temp2.yzw = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.yzw, r2, -c3.xwwz + temp2.yzw = temp2.yzw * float3(1.5, 1.5, 1); + // dp3 r4.x, r2.yzww, v1 + temp4.x = dot(temp2.yzw, i.texcoord1.xyz); + // dp3 r4.y, r2.yzww, v2 + temp4.y = dot(temp2.yzw, i.texcoord2.xyz); + // dp3 r4.z, r2.yzww, v3 + temp4.z = dot(temp2.yzw, i.texcoord3.xyz); + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r2.yz, c11.xzxw, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r6, r2.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp2.yz); + // add r2.yz, c11, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r7, r2.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp2.yz); + // add r2.yz, c11.xwzw, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r8, r2.yzzw, s0 + temp8 = tex2D(ShadowMapSampler, temp2.yz); + // mov r4.y, r6.x + temp4.y = temp6.x; + // mov r4.z, r7.x + temp4.z = temp7.x; + // mov r4.w, r8.x + temp4.w = temp8.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.y, r1, r5 + temp2.y = dot(temp1.xyz, temp5.xyz); + // add r2.y, r2.y, r2.y + temp2.y = temp2.y + temp2.y; + // mad r1.xyz, r5, -r2.y, r1 + temp1.xyz = temp5.xyz * -temp2.yyy + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c3.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r5, c6 + temp1.w = dot(temp5.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r5, c8 + temp1.w = dot(temp5.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r3, r2.x + temp2.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c9 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r4_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r4_abs.x, c90, r7.y + temp8.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r4_abs.x, c91, r7.y + temp9.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r4_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r4_abs.y, c93, r8 + temp8.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.y, c94, r9 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r4_abs.z, c95, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.z, c96, r8 + temp8.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r4_abs.w, c98, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.w, c99, r8 + temp8.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.x, c103, r4 + temp4.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.y, c106, r4 + temp4.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.z, c109, r4 + temp4.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.w, c112, r4 + temp4.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r5, r7 + temp2.w = dot(temp5.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r3, r1 + temp0.xyz = temp2.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 82 + compile ps_3_0 PS_H_Array_Shader_1(), // 83 + compile ps_3_0 PS_H_Array_Shader_2(), // 84 + compile ps_3_0 PS_H_Array_Shader_3(), // 85 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 1, 0, 0.1, -1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mov r2.xzw, c0 + temp2.xzw = float3(1, 0.1, -1); + // mad r0.xyz, c4, r2.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp2.zzz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v6 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xy, r2.xwzw, c12.x + temp0.xy = temp2.xw * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mov r2.xyw, c0 + temp2.xyw = float3(1, -1, 0.1); + // mad r1.xyz, c4, r2.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp2.www + temp1.xyz; + // slt r2.z, v4.x, -v4.x + temp2.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.w, v4.x + temp2.w = frac(i.blendindices.x); + // add r3.x, -r2.w, v4.x + temp3.x = -temp2.w + i.blendindices.x; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r2.z, r2.z, r2.w, r3.x + temp2.z = temp2.z * temp2.w + temp3.x; + // add r2.z, r2.z, r2.z + temp2.z = temp2.z + temp2.z; + // mova a0.x, r2.z + addr0.x = temp2.z; + // mul r3.w, v7.w, c129[a0.x].w + temp3.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r3.xyz, v7 + temp3.xyz = i.color.xyz; + // mul o7, r1, r3 + o.color = temp1 * temp3; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r1.xy, r2, c12.x + temp1.xy = temp2.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 88 + compile vs_3_0 VS_M_Array_Shader_1(), // 89 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c1.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c1.y, c1.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c1.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.x, c0.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c0.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c0.x, c0.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 50, 0 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c3.y, c3.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c3.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c1.x, c1.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c1.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c1.x, c1.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c3.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r2, v0, s1 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.xyw, r2.xyzz, c0.xyzz + temp1.xyw = temp2.xyz * RecolorColor.xyz; + // mad r1.xyw, r1, c3.y, -r2.xyzz + temp1.xyw = temp1.xyw * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r1.xyz, r1.z, r1.xyww, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.zzz * temp1.xyw + temp2.xyz; + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r3, v2.zwzw, s0 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // mad_pp r2.xyz, r1, v3, r0 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r1, v3.w, -c3.z, r0 + temp1 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r2, r1 + temp0 = /* not implemented _pp modifier */ temp2 * temp1; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 50, 0.25 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c3.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c3.y, c3.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c3.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c3.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r2, v0, s2 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.xyw, r2.xyzz, c0.xyzz + temp1.xyw = temp2.xyz * RecolorColor.xyz; + // mad r1.xyw, r1, c3.y, -r2.xyzz + temp1.xyw = temp1.xyw * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r1.xyz, r1.z, r1.xyww, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.zzz * temp1.xyw + temp2.xyz; + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r3, v2.zwzw, s1 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // mad_pp r2.xyz, r1, v4, r0 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r1, v4.w, -c3.z, r0 + temp1 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r2, r1 + temp0 = /* not implemented _pp modifier */ temp2 * temp1; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 90 + compile ps_3_0 PS_M_Array_Shader_1(), // 91 + compile ps_3_0 PS_M_Array_Shader_2(), // 92 + compile ps_3_0 PS_M_Array_Shader_3(), // 93 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mov r0.z, c0.z + temp0.z = float1(0.1); + // mad r1.xyz, c4, r0.z, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.zzz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v4 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0.1 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mov r0.w, c0.w + temp0.w = float1(0.1); + // mad r1.xyz, c4, r0.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.www + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v5.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v5 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 96 + compile vs_2_0 VS_L_Array_Shader_1(), // 97 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r3, v0.w, c0.x, r0 + temp3 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r3, r1 + temp0 = temp3 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c1, 2, 1, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s2 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s1 + temp1 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r2, t0, s0 + temp2 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r3, t1, s3 + temp3 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r4, v0.w, c1.y, r0 + temp4 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r0.xyz, r2, c0 + temp0.xyz = temp2.xyz * RecolorColor.xyz; + // mad r0.xyz, r0, c1.x, -r2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + -temp2.xyz; + // mad r0.xyz, r1.z, r0, r2 + temp0.xyz = temp1.zzz * temp0.xyz + temp2.xyz; + // mul r2.xyz, r0, v0 + temp2.xyz = temp0.xyz * i.color.xyz; + // mul r0, r4, r2 + temp0 = temp4 * temp2; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 98 + compile ps_2_0 PS_L_Array_Shader_1(), // 99 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v3.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT2.xy, v2 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, v3 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 102 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 103 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, -0.3764706, 0, 0 + // dcl t0.xy + // dcl t2.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(DamagedTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // lrp r1.x, v0.x, c0.x, r0.w + temp1.x = lerp(temp0.w, float1(1), i.color.x); + // mad r0, r1.w, r1.x, c0.y + temp0 = temp1.w * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 104 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 105 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression24 Expression_2_0 Has PRES False +float Default_L_Expression24() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression26 Expression_2_0 Has PRES False +float Default_M_Expression26() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression28()]; // 86 + PixelShader = PS_H_Array[Default_Expression27()]; // 87 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression26()]; // 94 + PixelShader = PS_M_Array[Default_M_Expression25()]; // 95 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression24()]; // 100 + PixelShader = PS_L_Array[Default_L_Expression23()]; // 101 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 106 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 107 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/buildingsjapanbuildup.fx b/buildingsjapanbuildup.fx new file mode 100644 index 0000000..e5729e0 --- /dev/null +++ b/buildingsjapanbuildup.fx @@ -0,0 +1,3482 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture JapanBuildMaskTexture ; // 49 +sampler2D JapanBuildMaskTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 52 + MipFilter = 2; + MinFilter = 2; + MagFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 56 +sampler2D DiffuseTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 58 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 61 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 63 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 66 +sampler2D SpecMapSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 68 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 76 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 79 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.1, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mov r1.z, c0.z + temp1.z = float1(0.1); + // mad r0.xyz, c4, r1.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp1.zzz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.5, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mov r2.w, c0.w + temp2.w = float1(0.1); + // mad r3.xyz, c4, r2.w, r3 + temp3.xyz = AmbientLightColor.xyz * temp2.www + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 83 + compile vs_3_0 VS_H_Array_Shader_1(), // 84 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 0, 1, 2, 3 + // def c1, -2, 3, 0.5, -0.3764706 + // def c3, -4, -5, -6, -7 + // def c4, 1.2, -0.95, 4.761905, 50 + // def c9, 2.2, 2, -1, -1.5 + // def c10, 5.4, 18, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c9.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c9.y, c9.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c9.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v0, s5 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c9.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.x, c0.x + temp6.x = float1(0); + // cmp r6.yzw, -r4_abs.x, c89.xxyz, r6.x + temp6.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r6.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.xxx; + // cmp r8.xy, -r4_abs.x, c91, r6.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6.yzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.yzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c9.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c9.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mov r1.y, v0.y + temp1.y = i.texcoord.y; + // mad r1.x, v6.w, c4.x, r1.y + temp1.x = i.color.w * float1(1.2) + temp1.y; + // add r1.x, r1.x, c4.y + temp1.x = temp1.x + float1(-0.95); + // mul_sat r1.x, r1.x, c4.z + temp1.x = saturate(temp1.x * float1(4.7619047)); + // mad r1.y, r1.x, c1.x, c1.y + temp1.y = temp1.x * float1(-2) + float1(3); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // mul r1.z, r1.y, r1.x + temp1.z = temp1.y * temp1.x; + // mul r2.xy, c4.w, v0 + temp2.xy = float2(50, 50) * i.texcoord.xy; + // texld r2, r2, s2 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp2.xy); + // add r1.w, r2.x, c1.z + temp1.w = temp2.x + float1(0.5); + // mul r2.x, r1.w, r1.w + temp2.x = temp1.w * temp1.w; + // mul r1.w, r1.w, r2.x + temp1.w = temp1.w * temp2.x; + // mul r2.xyz, r1.w, c10.xyxw + temp2.xyz = temp1.www * float3(5.4, 18, 5.4); + // min r2.w, r1.z, -c9.z + temp2.w = min(temp1.z, float1(1)); + // mad r0.xyz, r1.w, -c10.xyxw, r0 + temp0.xyz = temp1.www * float3(-5.4, -18, -5.4) + temp0.xyz; + // mad r0.xyz, r2.w, r0, r2 + temp0.xyz = temp2.www * temp0.xyz + temp2.xyz; + // mad r1, r1.y, r1.x, c1.w + temp1 = temp1.y * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r1 + clip(temp1); + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 1, 0, 0.25, 1.2 + // def c1, 2.2, 2, -1, -1.5 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // def c9, -0.95, 4.761905, -2, 3 + // def c10, 50, 0.5, 5.4, 18 + // def c12, -0.3764706, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c1.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s5 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c1.y, c1.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c1.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c0.x, c0.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c1.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c0.z + temp1.w = temp1.w * float1(0.25); + // texld r3, v0, s6 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r0, -r2.w, r1 + temp1.xyz = temp0.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c0.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c1.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c0.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c1.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mov r1.y, v0.y + temp1.y = i.texcoord.y; + // mad r1.x, v7.w, c0.w, r1.y + temp1.x = i.color.w * float1(1.2) + temp1.y; + // add r1.x, r1.x, c9.x + temp1.x = temp1.x + float1(-0.95); + // mul_sat r1.x, r1.x, c9.y + temp1.x = saturate(temp1.x * float1(4.7619047)); + // mad r1.y, r1.x, c9.z, c9.w + temp1.y = temp1.x * float1(-2) + float1(3); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // mul r1.z, r1.y, r1.x + temp1.z = temp1.y * temp1.x; + // mul r2.xy, c10.x, v0 + temp2.xy = float2(50, 50) * i.texcoord.xy; + // texld r2, r2, s3 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp2.xy); + // add r1.w, r2.x, c10.y + temp1.w = temp2.x + float1(0.5); + // mul r2.x, r1.w, r1.w + temp2.x = temp1.w * temp1.w; + // mul r1.w, r1.w, r2.x + temp1.w = temp1.w * temp2.x; + // mul r2.xyz, r1.w, c10.zwzw + temp2.xyz = temp1.www * float3(5.4, 18, 5.4); + // min r2.w, r1.z, -c1.z + temp2.w = min(temp1.z, float1(1)); + // mad r0.xyz, r1.w, -c10.zwzw, r0 + temp0.xyz = temp1.www * float3(-5.4, -18, -5.4) + temp0.xyz; + // mad r0.xyz, r2.w, r0, r2 + temp0.xyz = temp2.www * temp0.xyz + temp2.xyz; + // mad r1, r1.y, r1.x, c12.x + temp1 = temp1.y * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r1 + clip(temp1); + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c1, 2, 2.2, -1, -1.5 + // def c3, 0, 1, 2, 3 + // def c4, -2, 3, 0.5, -0.3764706 + // def c9, -4, -5, -6, -7 + // def c10, 1.2, -0.95, 4.761905, 50 + // def c11, 5.4, 18, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c1.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c1.x, c1.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c1.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r2.yzww, v6, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c3.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c3.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c3.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c3.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c9 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.x, c3.x + temp2.x = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.x + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r2.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.xxx; + // cmp r8.xy, -r4_abs.x, c91, r2.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c1.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c3.x + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c1.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mov r1.y, v0.y + temp1.y = i.texcoord.y; + // mad r1.x, v6.w, c10.x, r1.y + temp1.x = i.color.w * float1(1.2) + temp1.y; + // add r1.x, r1.x, c10.y + temp1.x = temp1.x + float1(-0.95); + // mul_sat r1.x, r1.x, c10.z + temp1.x = saturate(temp1.x * float1(4.7619047)); + // mad r1.y, r1.x, c4.x, c4.y + temp1.y = temp1.x * float1(-2) + float1(3); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // mul r1.z, r1.y, r1.x + temp1.z = temp1.y * temp1.x; + // mul r2.xy, c10.w, v0 + temp2.xy = float2(50, 50) * i.texcoord.xy; + // texld r2, r2, s2 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp2.xy); + // add r1.w, r2.x, c4.z + temp1.w = temp2.x + float1(0.5); + // mul r2.x, r1.w, r1.w + temp2.x = temp1.w * temp1.w; + // mul r1.w, r1.w, r2.x + temp1.w = temp1.w * temp2.x; + // mul r2.xyz, r1.w, c11.xyxw + temp2.xyz = temp1.www * float3(5.4, 18, 5.4); + // min r2.w, r1.z, -c1.z + temp2.w = min(temp1.z, float1(1)); + // mad r0.xyz, r1.w, -c11.xyxw, r0 + temp0.xyz = temp1.www * float3(-5.4, -18, -5.4) + temp0.xyz; + // mad r0.xyz, r2.w, r0, r2 + temp0.xyz = temp2.www * temp0.xyz + temp2.xyz; + // mad r1, r1.y, r1.x, c4.w + temp1 = temp1.y * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r1 + clip(temp1); + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c1, 2, 2.2, -1, -1.5 + // def c3, 1, 0, 0.25, 1.2 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // def c10, -0.95, 4.761905, -2, 3 + // def c12, 50, 0.5, 5.4, 18 + // def c13, -0.3764706, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s6 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c1.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s5 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c1.x, c1.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c1.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c3.x, c3.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c1.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c3.z + temp1.w = temp1.w * float1(0.25); + // dp3 r3.x, r1, r0 + temp3.x = dot(temp1.xyz, temp0.xyz); + // add r3.x, r3.x, r3.x + temp3.x = temp3.x + temp3.x; + // mad r1.xyz, r0, -r3.x, r1 + temp1.xyz = temp0.xyz * -temp3.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2.yzww, v7, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c3.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c3.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c3.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c3.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c9 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c3.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c1.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c3.y + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c1.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mov r1.y, v0.y + temp1.y = i.texcoord.y; + // mad r1.x, v7.w, c3.w, r1.y + temp1.x = i.color.w * float1(1.2) + temp1.y; + // add r1.x, r1.x, c10.x + temp1.x = temp1.x + float1(-0.95); + // mul_sat r1.x, r1.x, c10.y + temp1.x = saturate(temp1.x * float1(4.7619047)); + // mad r1.y, r1.x, c10.z, c10.w + temp1.y = temp1.x * float1(-2) + float1(3); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // mul r1.z, r1.y, r1.x + temp1.z = temp1.y * temp1.x; + // mul r2.xy, c12.x, v0 + temp2.xy = float2(50, 50) * i.texcoord.xy; + // texld r2, r2, s3 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp2.xy); + // add r1.w, r2.x, c12.y + temp1.w = temp2.x + float1(0.5); + // mul r2.x, r1.w, r1.w + temp2.x = temp1.w * temp1.w; + // mul r1.w, r1.w, r2.x + temp1.w = temp1.w * temp2.x; + // mul r2.xyz, r1.w, c12.zwzw + temp2.xyz = temp1.www * float3(5.4, 18, 5.4); + // min r2.w, r1.z, -c1.z + temp2.w = min(temp1.z, float1(1)); + // mad r0.xyz, r1.w, -c12.zwzw, r0 + temp0.xyz = temp1.www * float3(-5.4, -18, -5.4) + temp0.xyz; + // mad r0.xyz, r2.w, r0, r2 + temp0.xyz = temp2.www * temp0.xyz + temp2.xyz; + // mad r1, r1.y, r1.x, c13.x + temp1 = temp1.y * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r1 + clip(temp1); + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 85 + compile ps_3_0 PS_H_Array_Shader_1(), // 86 + compile ps_3_0 PS_H_Array_Shader_2(), // 87 + compile ps_3_0 PS_H_Array_Shader_3(), // 88 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 1, 0, 0.1, -1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mov r2.xzw, c0 + temp2.xzw = float3(1, 0.1, -1); + // mad r0.xyz, c4, r2.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp2.zzz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xy, r2.xwzw, c12.x + temp0.xy = temp2.xw * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mov r2.xyw, c0 + temp2.xyw = float3(1, -1, 0.1); + // mad r1.xyz, c4, r2.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp2.www + temp1.xyz; + // slt r2.z, v4.x, -v4.x + temp2.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.w, v4.x + temp2.w = frac(i.blendindices.x); + // add r3.x, -r2.w, v4.x + temp3.x = -temp2.w + i.blendindices.x; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r2.z, r2.z, r2.w, r3.x + temp2.z = temp2.z * temp2.w + temp3.x; + // add r2.z, r2.z, r2.z + temp2.z = temp2.z + temp2.z; + // mova a0.x, r2.z + addr0.x = temp2.z; + // mul r3.w, v6.w, c129[a0.x].w + temp3.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r3.xyz, v6 + temp3.xyz = i.color.xyz; + // mul o7, r1, r3 + o.color = temp1 * temp3; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r1.xy, r2, c12.x + temp1.xy = temp2.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 92 + compile vs_3_0 VS_M_Array_Shader_1(), // 93 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1.5, 1, 0, 50 + // def c1, 1.2, -0.95, 4.761905, -0.3764706 + // def c3, -2, 3, 0.8, 1 + // def c4, 0.5, 5.4, 18, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // mov r0.y, v0.y + temp0.y = i.texcoord.y; + // mad r0.x, v3.w, c1.x, r0.y + temp0.x = i.color.w * float1(1.2) + temp0.y; + // add r0.x, r0.x, c1.y + temp0.x = temp0.x + float1(-0.95); + // mul_sat r0.x, r0.x, c1.z + temp0.x = saturate(temp0.x * float1(4.7619047)); + // mad r0.y, r0.x, c3.x, c3.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mad r1, r0.y, r0.x, c1.w + temp1 = temp0.y * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // mul_pp r0.x, r0.y, r0.x + temp0.x = /* not implemented _pp modifier */ temp0.y * temp0.x; + // texkill r1 + clip(temp1); + // min_pp r1.x, r0.x, c3.w + temp1.x = /* not implemented _pp modifier */ min(temp0.x, float1(1)); + // texld r0, v0, s3 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, -c3.x, -c3.w + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, c0.xxyw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r0 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r2, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r2, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.z, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.y, r0.x, c0.w + temp1.y = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.z, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.y, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.y * temp0.x; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r2.x, c3.z + temp0.z = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r2, v0, s2 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.yyy + temp0.xxx; + // texld r3, v2.zwzw, s0 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.yzw, r3.xxyz, c5.xxyz + temp1.yzw = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r1.yzww + temp0.xyz = temp0.xyz * temp1.yzw; + // mad_pp r0.xyz, r2, v3, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * i.color.xyz + temp0.xyz; + // mov_pp oC0.w, r2.w + out_color.w = /* not implemented _pp modifier */ temp2.w; + // mul_pp r1.yz, c0.w, v0.xxyw + temp1.yz = /* not implemented _pp modifier */ float2(50, 50) * i.texcoord.xy; + // texld r2, r1.yzzw, s1 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp1.yz); + // add_pp r0.w, r2.x, c4.x + temp0.w = /* not implemented _pp modifier */ temp2.x + float1(0.5); + // mul_pp r1.y, r0.w, r0.w + temp1.y = /* not implemented _pp modifier */ temp0.w * temp0.w; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r0.xyz, r0.w, -c4.yzyw, r0 + temp0.xyz = /* not implemented _pp modifier */ temp0.www * float3(-5.4, -18, -5.4) + temp0.xyz; + // mul_pp r1.yzw, r0.w, c4.xyzy + temp1.yzw = /* not implemented _pp modifier */ temp0.www * float3(5.4, 18, 5.4); + // mad_pp r0.xyz, r1.x, r0, r1.yzww + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * temp0.xyz + temp1.yzw; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1.5, 1, 0, 50 + // def c1, 1.2, -0.95, 4.761905, -0.3764706 + // def c3, -2, 3, 0.8, 1 + // def c4, 0.25, 0.5, 5.4, 18 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // mov r0.y, v0.y + temp0.y = i.texcoord.y; + // mad r0.x, v4.w, c1.x, r0.y + temp0.x = i.color.w * float1(1.2) + temp0.y; + // add r0.x, r0.x, c1.y + temp0.x = temp0.x + float1(-0.95); + // mul_sat r0.x, r0.x, c1.z + temp0.x = saturate(temp0.x * float1(4.7619047)); + // mad r0.y, r0.x, c3.x, c3.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mad r1, r0.y, r0.x, c1.w + temp1 = temp0.y * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // mul_pp r0.x, r0.y, r0.x + temp0.x = /* not implemented _pp modifier */ temp0.y * temp0.x; + // texkill r1 + clip(temp1); + // min_pp r1.x, r0.x, c3.w + temp1.x = /* not implemented _pp modifier */ min(temp0.x, float1(1)); + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.yz, c11, v3.xxyw + temp1.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r1.yzzw, s0 + temp2 = tex2D(ShadowMapSampler, temp1.yz); + // mov r0.z, r2.x + temp0.z = temp2.x; + // add r1.yz, c11.xwzw, v3.xxyw + temp1.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r1.yzzw, s0 + temp2 = tex2D(ShadowMapSampler, temp1.yz); + // mov r0.w, r2.x + temp0.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r2.x + temp0.x = temp2.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c3.w, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c4.x + temp0.x = temp0.x * float1(0.25); + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r2.xxyz, -c3.x, -c3.w + temp0.yzw = /* not implemented _pp modifier */ temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, c0.xxxy + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r0.yzww + temp2.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r2, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r2, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.z, c0.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.y, r0.y, c0.w + temp1.y = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c0.z, c0.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.z, r0.z, r0.y + temp1.z = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.w, r1.y, r0.y + temp1.w = /* not implemented _pp modifier */ temp1.y * temp0.y; + // mul_pp r0.xy, r0.x, r1.zwzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.zw; + // texld r2, v0, s5 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r2.x, c3.z + temp0.z = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * temp0.xxx + temp0.yyy; + // texld r3, v2.zwzw, s1 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.yzw, r3.xxyz, c5.xxyz + temp1.yzw = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r1.yzww + temp0.xyz = temp0.xyz * temp1.yzw; + // mad_pp r0.xyz, r2, v4, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * i.color.xyz + temp0.xyz; + // mov_pp oC0.w, r2.w + out_color.w = /* not implemented _pp modifier */ temp2.w; + // mul_pp r1.yz, c0.w, v0.xxyw + temp1.yz = /* not implemented _pp modifier */ float2(50, 50) * i.texcoord.xy; + // texld r2, r1.yzzw, s2 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp1.yz); + // add_pp r0.w, r2.x, c4.y + temp0.w = /* not implemented _pp modifier */ temp2.x + float1(0.5); + // mul_pp r1.y, r0.w, r0.w + temp1.y = /* not implemented _pp modifier */ temp0.w * temp0.w; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r0.xyz, r0.w, -c4.zwzw, r0 + temp0.xyz = /* not implemented _pp modifier */ temp0.www * float3(-5.4, -18, -5.4) + temp0.xyz; + // mul_pp r1.yzw, r0.w, c4.xzwz + temp1.yzw = /* not implemented _pp modifier */ temp0.www * float3(5.4, 18, 5.4); + // mad_pp r0.xyz, r1.x, r0, r1.yzww + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * temp0.xyz + temp1.yzw; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 2, -1, 1.5, 1 + // def c3, 0, 1, 50, 0.5 + // def c4, 1.2, -0.95, 4.761905, -0.3764706 + // def c6, -2, 3, 0.8, 2 + // def c7, 5.4, 18, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // mov r0.y, v0.y + temp0.y = i.texcoord.y; + // mad r0.x, v3.w, c4.x, r0.y + temp0.x = i.color.w * float1(1.2) + temp0.y; + // add r0.x, r0.x, c4.y + temp0.x = temp0.x + float1(-0.95); + // mul_sat r0.x, r0.x, c4.z + temp0.x = saturate(temp0.x * float1(4.7619047)); + // mad r0.y, r0.x, c6.x, c6.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mad r1, r0.y, r0.x, c4.w + temp1 = temp0.y * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // mul_pp r0.x, r0.y, r0.x + temp0.x = /* not implemented _pp modifier */ temp0.y * temp0.x; + // texkill r1 + clip(temp1); + // min_pp r1.x, r0.x, c1.w + temp1.x = /* not implemented _pp modifier */ min(temp0.x, float1(1)); + // texld r0, v0, s3 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.x, c1.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, c1.zzww + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r0 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r2, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r2, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c3.x, c3.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.y, r0.x, c3.z + temp1.y = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c3.x, c3.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.y, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.y * temp0.x; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r2.x, c6.z + temp0.z = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r3, v0, s2 + temp3 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.yzw, r3.xxyz, c0.xxyz + temp1.yzw = temp3.xyz * RecolorColor.xyz; + // mad r1.yzw, r1, c6.w, -r3.xxyz + temp1.yzw = temp1.yzw * float3(2, 2, 2) + -temp3.xyz; + // mad_pp r1.yzw, r2.z, r1, r3.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp2.zzz * temp1.yzw + temp3.xyz; + // mov_pp oC0.w, r3.w + out_color.w = /* not implemented _pp modifier */ temp3.w; + // mad_pp r0.xyz, r1.yzww, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.yzw * temp0.yyy + temp0.xxx; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r0.xyz, r1.yzww, v3, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.yzw * i.color.xyz + temp0.xyz; + // mul_pp r1.yz, c3.z, v0.xxyw + temp1.yz = /* not implemented _pp modifier */ float2(50, 50) * i.texcoord.xy; + // texld r2, r1.yzzw, s1 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp1.yz); + // add_pp r0.w, r2.x, c3.w + temp0.w = /* not implemented _pp modifier */ temp2.x + float1(0.5); + // mul_pp r1.y, r0.w, r0.w + temp1.y = /* not implemented _pp modifier */ temp0.w * temp0.w; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r0.xyz, r0.w, -c7.xyxw, r0 + temp0.xyz = /* not implemented _pp modifier */ temp0.www * float3(-5.4, -18, -5.4) + temp0.xyz; + // mul_pp r1.yzw, r0.w, c7.xxyx + temp1.yzw = /* not implemented _pp modifier */ temp0.www * float3(5.4, 18, 5.4); + // mad_pp r0.xyz, r1.x, r0, r1.yzww + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * temp0.xyz + temp1.yzw; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 50, 0.25 + // def c3, 1.2, -0.95, 4.761905, -0.3764706 + // def c4, -2, 3, 0.8, 2 + // def c6, 2, -1, 1.5, 1 + // def c7, 0.5, 5.4, 18, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // mov r0.y, v0.y + temp0.y = i.texcoord.y; + // mad r0.x, v4.w, c3.x, r0.y + temp0.x = i.color.w * float1(1.2) + temp0.y; + // add r0.x, r0.x, c3.y + temp0.x = temp0.x + float1(-0.95); + // mul_sat r0.x, r0.x, c3.z + temp0.x = saturate(temp0.x * float1(4.7619047)); + // mad r0.y, r0.x, c4.x, c4.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mad r1, r0.y, r0.x, c3.w + temp1 = temp0.y * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // mul_pp r0.x, r0.y, r0.x + temp0.x = /* not implemented _pp modifier */ temp0.y * temp0.x; + // texkill r1 + clip(temp1); + // min_pp r1.x, r0.x, c6.w + temp1.x = /* not implemented _pp modifier */ min(temp0.x, float1(1)); + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.yz, c11, v3.xxyw + temp1.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r1.yzzw, s0 + temp2 = tex2D(ShadowMapSampler, temp1.yz); + // mov r0.z, r2.x + temp0.z = temp2.x; + // add r1.yz, c11.xwzw, v3.xxyw + temp1.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r1.yzzw, s0 + temp2 = tex2D(ShadowMapSampler, temp1.yz); + // mov r0.w, r2.x + temp0.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r2.x + temp0.x = temp2.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c6.w, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r2.xxyz, c6.x, c6.y + temp0.yzw = /* not implemented _pp modifier */ temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, c6.xzzw + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r0.yzww + temp2.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r2, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r2, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.y, r0.y, c1.z + temp1.y = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.z, r0.z, r0.y + temp1.z = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.w, r1.y, r0.y + temp1.w = /* not implemented _pp modifier */ temp1.y * temp0.y; + // mul_pp r0.xy, r0.x, r1.zwzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.zw; + // texld r2, v0, s5 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r2.x, c4.z + temp0.z = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r3, v0, s3 + temp3 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.yzw, r3.xxyz, c0.xxyz + temp1.yzw = temp3.xyz * RecolorColor.xyz; + // mad r1.yzw, r1, c4.w, -r3.xxyz + temp1.yzw = temp1.yzw * float3(2, 2, 2) + -temp3.xyz; + // mad_pp r1.yzw, r2.z, r1, r3.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp2.zzz * temp1.yzw + temp3.xyz; + // mov_pp oC0.w, r3.w + out_color.w = /* not implemented _pp modifier */ temp3.w; + // mad_pp r0.xyz, r1.yzww, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.yzw * temp0.xxx + temp0.yyy; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r0.xyz, r1.yzww, v4, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.yzw * i.color.xyz + temp0.xyz; + // mul_pp r1.yz, c1.z, v0.xxyw + temp1.yz = /* not implemented _pp modifier */ float2(50, 50) * i.texcoord.xy; + // texld r2, r1.yzzw, s2 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp1.yz); + // add_pp r0.w, r2.x, c7.x + temp0.w = /* not implemented _pp modifier */ temp2.x + float1(0.5); + // mul_pp r1.y, r0.w, r0.w + temp1.y = /* not implemented _pp modifier */ temp0.w * temp0.w; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r0.xyz, r0.w, -c7.yzyw, r0 + temp0.xyz = /* not implemented _pp modifier */ temp0.www * float3(-5.4, -18, -5.4) + temp0.xyz; + // mul_pp r1.yzw, r0.w, c7.xyzy + temp1.yzw = /* not implemented _pp modifier */ temp0.www * float3(5.4, 18, 5.4); + // mad_pp r0.xyz, r1.x, r0, r1.yzww + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * temp0.xyz + temp1.yzw; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 94 + compile ps_3_0 PS_M_Array_Shader_1(), // 95 + compile ps_3_0 PS_M_Array_Shader_2(), // 96 + compile ps_3_0 PS_M_Array_Shader_3(), // 97 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mov r0.z, c0.z + temp0.z = float1(0.1); + // mad r1.xyz, c4, r0.z, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.zzz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0.1 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mov r0.w, c0.w + temp0.w = float1(0.1); + // mad r1.xyz, c4, r0.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.www + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 101 + compile vs_2_0 VS_L_Array_Shader_1(), // 102 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1.2, -0.95, 4.761905, 50 + // def c1, -2, 3, 0.5, 1 + // def c3, 5.4, 18, 5.4, -0.3764706 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.w, t0.y + temp0.w = i.texcoord.y; + // mad r0.x, v0.w, c0.x, r0.w + temp0.x = i.color.w * float1(1.2) + temp0.w; + // add r0.x, r0.x, c0.y + temp0.x = temp0.x + float1(-0.95); + // mul_sat r0.x, r0.x, c0.z + temp0.x = saturate(temp0.x * float1(4.7619047)); + // mad r0.y, r0.x, c1.x, c1.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mad r1, r0.y, r0.x, c3.w + temp1 = temp0.y * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r2.xy, t0, c0.w + temp2.xy = i.texcoord.xy * float2(50, 50); + // texkill r1 + clip(temp1); + // texld r1, r2, s0 + temp1 = tex2D(JapanBuildMaskTextureSampler, temp2.xy); + // texld r2, t0, s1 + temp2 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r3, t1, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // min r3.w, r0.x, c1.w + temp3.w = min(temp0.x, float1(1)); + // add r0.x, r1.x, c1.z + temp0.x = temp1.x + float1(0.5); + // mul r0.y, r0.x, r0.x + temp0.y = temp0.x * temp0.x; + // mul r0.x, r0.x, r0.y + temp0.x = temp0.x * temp0.y; + // mul r0.xyz, r0.x, c3 + temp0.xyz = temp0.xxx * float3(5.4, 18, 5.4); + // mul r1.xyz, r2, v0 + temp1.xyz = temp2.xyz * i.color.xyz; + // mul r1.xyz, r1, c2 + temp1.xyz = temp1.xyz * TintColor.xyz; + // mad r1.xyz, r1, r3, -r0 + temp1.xyz = temp1.xyz * temp3.xyz + -temp0.xyz; + // mad r2.xyz, r3.w, r1, r0 + temp2.xyz = temp3.www * temp1.xyz + temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c1, 5.4, 18, 5.4, 1 + // def c3, 2, 1.2, -0.95, 4.761905 + // def c4, -2, 3, 50, 0.5 + // def c5, -0.3764706, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // mov r0.w, t0.y + temp0.w = i.texcoord.y; + // mad r0.x, v0.w, c3.y, r0.w + temp0.x = i.color.w * float1(1.2) + temp0.w; + // add r0.x, r0.x, c3.z + temp0.x = temp0.x + float1(-0.95); + // mul_sat r0.x, r0.x, c3.w + temp0.x = saturate(temp0.x * float1(4.7619047)); + // mad r0.y, r0.x, c4.x, c4.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mad r1, r0.y, r0.x, c5.x + temp1 = temp0.y * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r2.xy, t0, c4.z + temp2.xy = i.texcoord.xy * float2(50, 50); + // texkill r1 + clip(temp1); + // texld r1, t0, s2 + temp1 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r3, t0, s1 + temp3 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, r2, s0 + temp2 = tex2D(JapanBuildMaskTextureSampler, temp2.xy); + // texld r4, t1, s3 + temp4 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // min r4.w, r0.x, c1.w + temp4.w = min(temp0.x, float1(1)); + // mul r0.xyz, r3, c0 + temp0.xyz = temp3.xyz * RecolorColor.xyz; + // mad r0.xyz, r0, c3.x, -r3 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + -temp3.xyz; + // mad r0.xyz, r1.z, r0, r3 + temp0.xyz = temp1.zzz * temp0.xyz + temp3.xyz; + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // add r0.w, r2.x, c4.w + temp0.w = temp2.x + float1(0.5); + // mul r1.x, r0.w, r0.w + temp1.x = temp0.w * temp0.w; + // mul r0.w, r0.w, r1.x + temp0.w = temp0.w * temp1.x; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(5.4, 18, 5.4); + // mad r0.xyz, r0, r4, -r1 + temp0.xyz = temp0.xyz * temp4.xyz + -temp1.xyz; + // mad r3.xyz, r4.w, r0, r1 + temp3.xyz = temp4.www * temp0.xyz + temp1.xyz; + // mov oC0, r3 + out_color = temp3; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 103 + compile ps_2_0 PS_L_Array_Shader_1(), // 104 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 108 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 109 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_0(PSCreateShadowMap_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1.2, -1.05, 9.090909, -0.3764706 + // def c1, -2, 3, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // mov r0.w, v0.x + temp0.w = i.color.x; + // mad r0.x, r0.w, c0.x, t0.y + temp0.x = temp0.w * float1(1.2) + i.texcoord.y; + // add r0.x, r0.x, c0.y + temp0.x = temp0.x + float1(-1.05); + // mul_sat r0.x, r0.x, c0.z + temp0.x = saturate(temp0.x * float1(9.090909)); + // mad r0.y, r0.x, c1.x, c1.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mad r0, r0.y, r0.x, c0.w + temp0 = temp0.y * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1.2, -1.05, 9.090909, -0.3764706 + // def c1, -2, 3, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // mov r0.w, v0.x + temp0.w = i.color.x; + // mad r0.x, r0.w, c0.x, t0.y + temp0.x = temp0.w * float1(1.2) + i.texcoord.y; + // add r0.x, r0.x, c0.y + temp0.x = temp0.x + float1(-1.05); + // mul_sat r0.x, r0.x, c0.z + temp0.x = saturate(temp0.x * float1(9.090909)); + // mad r0.y, r0.x, c1.x, c1.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mad r0, r0.y, r0.x, c0.w + temp0 = temp0.y * temp0.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 110 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 111 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression24 Expression_2_0 Has PRES False +float Default_L_Expression24() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression26 Expression_2_0 Has PRES False +float Default_M_Expression26() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression28()]; // 90 + PixelShader = PS_H_Array[Default_Expression27()]; // 91 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression26()]; // 99 + PixelShader = PS_M_Array[Default_M_Expression25()]; // 100 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression24()]; // 106 + PixelShader = PS_L_Array[Default_L_Expression23()]; // 107 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 112 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 113 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/buildingssoviet.fx b/buildingssoviet.fx new file mode 100644 index 0000000..80bfe03 --- /dev/null +++ b/buildingssoviet.fx @@ -0,0 +1,3168 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 49 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 51 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 54 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 59 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DamagedTexture ; // 64 +sampler2D DamagedTextureSampler = +sampler_state +{ + Texture = ; // 66 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 73 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 76 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.1, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mov r1.z, c0.z + temp1.z = float1(0.1); + // mad r0.xyz, c4, r1.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp1.zzz + temp0.xyz; + // mul r0.xyz, r0, v6 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v6.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.5, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v7.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mov r2.w, c0.w + temp2.w = float1(0.1); + // mad r3.xyz, c4, r2.w, r3 + temp3.xyz = AmbientLightColor.xyz * temp2.www + temp3.xyz; + // mul r1.xyz, r3, v7 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 80 + compile vs_3_0 VS_H_Array_Shader_1(), // 81 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s3 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(1.5, 1.5, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r2, -r1.w, r1 + temp1.xyz = temp2.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v5.zwzw, s0 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, -c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c1 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c0.x + temp7.x = float1(0); + // cmp r7.yzw, -r5_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r5_abs.x, c90, r7.x + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r5_abs.x, c91, r7.x + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r5_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float3 temp8; + float2 temp9; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -1.5 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c3.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // texld r2, v0, s4 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c3.y, c3.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xyz, r2, -c3.wwzw + temp2.xyz = temp2.xyz * float3(1.5, 1.5, 1); + // dp3 r4.x, r2, v1 + temp4.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r4.y, r2, v2 + temp4.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r4.z, r2, v3 + temp4.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r4 + temp2.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r2 + temp2.w = dot(temp1.xyz, temp2.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r2, -r2.w, r1 + temp1.xyz = temp2.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r4, v6.zwzw, s1 + temp4 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.x + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r1.w, r5 + temp4.xyz = temp1.www * temp5.xyz; + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r4, c5 + temp4.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3, r2.w + temp5.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r4, r5, r1 + temp1.xyz = temp4.xyz * temp5.xyz + temp1.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, c7, r4, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp4.xyz + temp1.xyz; + // mov r4.xyz, c1.y + temp4.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r1.w, c0 + temp5 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c4 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r5_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp5).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r5_abs.x, c90, r7.y + temp8.xyz = (-abs(temp5).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r5_abs.x, c91, r7.y + temp9.xy = (-abs(temp5).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r5_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r5_abs.y, c93, r8 + temp8.xyz = (-abs(temp5).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.y, c94, r9 + temp5.xy = (-abs(temp5).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r5_abs.z, c95, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.z, c96, r8 + temp8.xyz = (-abs(temp5).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.z, c97, r5 + temp5.xy = (-abs(temp5).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r5_abs.w, c98, r7 + temp7.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r5_abs.w, c99, r8 + temp8.xyz = (-abs(temp5).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r5.xy, -r5_abs.w, c100, r5 + temp5.xy = (-abs(temp5).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.x, c103, r5 + temp5.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.y, c106, r5 + temp5.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp5.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.z, c109, r5 + temp5.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp5.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r5.xy, -r6_abs.w, c112, r5 + temp5.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp5.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r5.x, r3.w + temp2.w = -temp5.x + temp3.w; + // add r3.w, -r5.x, r5.y + temp3.w = -temp5.x + temp5.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r5.xyz, r6, r2.w + temp5.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r2, r7 + temp2.w = dot(temp2.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r4.xyz, r5, r3.w, r4 + temp4.xyz = temp5.xyz * temp3.www + temp4.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r4, r3, r1 + temp0.xyz = temp4.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp6, temp7; + float3 temp5, temp8; + float2 temp9; + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // def c4, 2, 2.2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r2.yzw, r2.z, r3.xxyz, r0.xxyz + temp2.yzw = temp2.zzz * temp3.xyz + temp0.xyz; + // log r3.x, r2.y + temp3.x = log2(temp2.y); + // log r3.y, r2.z + temp3.y = log2(temp2.z); + // log r3.z, r2.w + temp3.z = log2(temp2.w); + // mul r2.yzw, r3.xxyz, c4.y + temp2.yzw = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.y + temp3.x = exp2(temp2.y); + // exp r3.y, r2.z + temp3.y = exp2(temp2.z); + // exp r3.z, r2.w + temp3.z = exp2(temp2.w); + // texld r4, v0, s3 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.yzw, r4.xxyz, c4.x, c4.z + temp2.yzw = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.yzw, r2, -c4.xwwz + temp2.yzw = temp2.yzw * float3(1.5, 1.5, 1); + // dp3 r4.x, r2.yzww, v1 + temp4.x = dot(temp2.yzw, i.texcoord1.xyz); + // dp3 r4.y, r2.yzww, v2 + temp4.y = dot(temp2.yzw, i.texcoord2.xyz); + // dp3 r4.z, r2.yzww, v3 + temp4.z = dot(temp2.yzw, i.texcoord3.xyz); + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r1.w, r1, r5 + temp1.w = dot(temp1.xyz, temp5.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r5, -r1.w, r1 + temp1.xyz = temp5.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r3, v6, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c4.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r5, c6 + temp1.w = dot(temp5.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3, r2.x + temp4.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r5, c8 + temp1.w = dot(temp5.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r3, r2.x + temp2.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c1.x + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c3 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.x, c1.x + temp7.x = float1(0); + // cmp r7.yzw, -r4_abs.x, c89.xxyz, r7.x + temp7.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp7.xxx; + // cmp r8.xyz, -r4_abs.x, c90, r7.x + temp8.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp7.xxx; + // cmp r9.xy, -r4_abs.x, c91, r7.x + temp9.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.xx; + // cmp r7.xyz, -r4_abs.y, c92, r7.yzww + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp7.yzw; + // cmp r8.xyz, -r4_abs.y, c93, r8 + temp8.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.y, c94, r9 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r4_abs.z, c95, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.z, c96, r8 + temp8.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r4_abs.w, c98, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.w, c99, r8 + temp8.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.x, c103, r4 + temp4.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.y, c106, r4 + temp4.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.z, c109, r4 + temp4.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.w, c112, r4 + temp4.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c4.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r5, r7 + temp2.w = dot(temp5.xyz, temp7.xyz); + // max r3.w, r2.w, c1.x + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r3, r1 + temp0.xyz = temp2.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v6.w, -c4.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp6, temp7, temp8; + float3 temp5; + float2 temp9; + // def c1, 1, 0, 0.25, 0 + // def c3, 2, 2.2, -1, -1.5 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c3.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r2.yzw, r2.z, r3.xxyz, r0.xxyz + temp2.yzw = temp2.zzz * temp3.xyz + temp0.xyz; + // log r3.x, r2.y + temp3.x = log2(temp2.y); + // log r3.y, r2.z + temp3.y = log2(temp2.z); + // log r3.z, r2.w + temp3.z = log2(temp2.w); + // mul r2.yzw, r3.xxyz, c3.y + temp2.yzw = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.y + temp3.x = exp2(temp2.y); + // exp r3.y, r2.z + temp3.y = exp2(temp2.z); + // exp r3.z, r2.w + temp3.z = exp2(temp2.w); + // texld r4, v0, s4 + temp4 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.yzw, r4.xxyz, c3.x, c3.z + temp2.yzw = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.yzw, r2, -c3.xwwz + temp2.yzw = temp2.yzw * float3(1.5, 1.5, 1); + // dp3 r4.x, r2.yzww, v1 + temp4.x = dot(temp2.yzw, i.texcoord1.xyz); + // dp3 r4.y, r2.yzww, v2 + temp4.y = dot(temp2.yzw, i.texcoord2.xyz); + // dp3 r4.z, r2.yzww, v3 + temp4.z = dot(temp2.yzw, i.texcoord3.xyz); + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r2.yz, c11.xzxw, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r6, r2.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp2.yz); + // add r2.yz, c11, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r7, r2.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp2.yz); + // add r2.yz, c11.xwzw, v5.xxyw + temp2.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r8, r2.yzzw, s0 + temp8 = tex2D(ShadowMapSampler, temp2.yz); + // mov r4.y, r6.x + temp4.y = temp6.x; + // mov r4.z, r7.x + temp4.z = temp7.x; + // mov r4.w, r8.x + temp4.w = temp8.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, c1.x, c1.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.y, r1, r5 + temp2.y = dot(temp1.xyz, temp5.xyz); + // add r2.y, r2.y, r2.y + temp2.y = temp2.y + temp2.y; + // mad r1.xyz, r5, -r2.y, r1 + temp1.xyz = temp5.xyz * -temp2.yyy + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r3, v7, r1 + temp1.xyz = temp3.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c3.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r5, c6 + temp1.w = dot(temp5.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r5, c8 + temp1.w = dot(temp5.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r3, r2.x + temp2.xyz = temp3.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r6, r1.w, c9 + temp6 = temp1.w + float4(-4, -5, -6, -7); + // mov r7.y, c1.y + temp7.y = float1(0); + // cmp r7.xzw, -r4_abs.x, c89.xyyz, r7.y + temp7.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp7.yyy; + // cmp r8.xyz, -r4_abs.x, c90, r7.y + temp8.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp7.yyy; + // cmp r9.xy, -r4_abs.x, c91, r7.y + temp9.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp7.yy; + // cmp r7.xyz, -r4_abs.y, c92, r7.xzww + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp7.xzw; + // cmp r8.xyz, -r4_abs.y, c93, r8 + temp8.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.y, c94, r9 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp9.xy; + // cmp r7.xyz, -r4_abs.z, c95, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.z, c96, r8 + temp8.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r4_abs.w, c98, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r4_abs.w, c99, r8 + temp8.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp8.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.x, c101, r7 + temp7.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.x, c102, r8 + temp8.xyz = (-abs(temp6).xxx >= 0) ? PointLight[4].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.x, c103, r4 + temp4.xy = (-abs(temp6).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.y, c104, r7 + temp7.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.y, c105, r8 + temp8.xyz = (-abs(temp6).yyy >= 0) ? PointLight[5].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.y, c106, r4 + temp4.xy = (-abs(temp6).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r7.xyz, -r6_abs.z, c107, r7 + temp7.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Color.xyz : temp7.xyz; + // cmp r8.xyz, -r6_abs.z, c108, r8 + temp8.xyz = (-abs(temp6).zzz >= 0) ? PointLight[6].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.z, c109, r4 + temp4.xy = (-abs(temp6).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r6_abs.w, c110, r7 + temp6.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Color.xyz : temp7.xyz; + // cmp r7.xyz, -r6_abs.w, c111, r8 + temp7.xyz = (-abs(temp6).www >= 0) ? PointLight[7].Position.xyz : temp8.xyz; + // cmp r4.xy, -r6_abs.w, c112, r4 + temp4.xy = (-abs(temp6).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r7.xyz, r7, -v4 + temp7.xyz = temp7.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r7, r7 + temp2.w = dot(temp7.xyz, temp7.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r7.xyz, r7, r2.w + temp7.xyz = temp7.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // dp3 r2.w, r5, r7 + temp2.w = dot(temp5.xyz, temp7.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r3, r1 + temp0.xyz = temp2.xyz * temp3.xyz + temp1.xyz; + // texld r1, v0.wzzw, s6 + temp1 = tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v7.w, -c3.z, r1 + temp2 = lerp(temp1, float4(1, 1, 1, 1), i.color.w); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 82 + compile ps_3_0 PS_H_Array_Shader_1(), // 83 + compile ps_3_0 PS_H_Array_Shader_2(), // 84 + compile ps_3_0 PS_H_Array_Shader_3(), // 85 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 1, 0, 0.1, -1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mov r2.xzw, c0 + temp2.xzw = float3(1, 0.1, -1); + // mad r0.xyz, c4, r2.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp2.zzz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v6 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xy, r2.xwzw, c12.x + temp0.xy = temp2.xw * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mov r2.xyw, c0 + temp2.xyw = float3(1, -1, 0.1); + // mad r1.xyz, c4, r2.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp2.www + temp1.xyz; + // slt r2.z, v4.x, -v4.x + temp2.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.w, v4.x + temp2.w = frac(i.blendindices.x); + // add r3.x, -r2.w, v4.x + temp3.x = -temp2.w + i.blendindices.x; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r2.z, r2.z, r2.w, r3.x + temp2.z = temp2.z * temp2.w + temp3.x; + // add r2.z, r2.z, r2.z + temp2.z = temp2.z + temp2.z; + // mova a0.x, r2.z + addr0.x = temp2.z; + // mul r3.w, v7.w, c129[a0.x].w + temp3.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r3.xyz, v7 + temp3.xyz = i.color.xyz; + // mul o7, r1, r3 + o.color = temp1 * temp3; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r1.xy, r2, c12.x + temp1.xy = temp2.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 88 + compile vs_3_0 VS_M_Array_Shader_1(), // 89 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 45, 0 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(45)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v3, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v3.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 45, 0.25 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c1.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c1.y, c1.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c1.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c0.x, c0.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c0.z + temp1.x = pow(temp0.y, float1(45)); + // cmp r0.y, -r0.z, c0.x, c0.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mad_pp r1.xyz, r1, v4, r0 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r2, v4.w, -c1.z, r0 + temp2 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r1, r2 + temp0 = /* not implemented _pp modifier */ temp1 * temp2; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 45, 0 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c3.y, c3.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c3.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c1.x, c1.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c1.z + temp1.x = pow(temp0.x, float1(45)); + // cmp r0.x, -r0.y, c1.x, c1.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c3.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // texld r2, v0, s1 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.xyw, r2.xyzz, c0.xyzz + temp1.xyw = temp2.xyz * RecolorColor.xyz; + // mad r1.xyw, r1, c3.y, -r2.xyzz + temp1.xyw = temp1.xyw * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r1.xyz, r1.z, r1.xyww, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.zzz * temp1.xyw + temp2.xyz; + // mad_pp r0.xyz, r1, r0.y, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.yyy + temp0.xxx; + // texld r3, v2.zwzw, s0 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // mad_pp r2.xyz, r1, v3, r0 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s4 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r1, v3.w, -c3.z, r0 + temp1 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r2, r1 + temp0 = /* not implemented _pp modifier */ temp2 * temp1; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c1, 0, 1, 45, 0.25 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c3.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c3.y, c3.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c3.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(1.5, 1.5, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(45)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c3.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // texld r2, v0, s2 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1.xyw, r2.xyzz, c0.xyzz + temp1.xyw = temp2.xyz * RecolorColor.xyz; + // mad r1.xyw, r1, c3.y, -r2.xyzz + temp1.xyw = temp1.xyw * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r1.xyz, r1.z, r1.xyww, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.zzz * temp1.xyw + temp2.xyz; + // mad_pp r0.xyz, r1, r0.x, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * temp0.xxx + temp0.yyy; + // texld r3, v2.zwzw, s1 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // mad_pp r2.xyz, r1, v4, r0 + temp2.xyz = /* not implemented _pp modifier */ temp1.xyz * i.color.xyz + temp0.xyz; + // texld r0, v0.wzzw, s5 + temp0 = /* not implemented _pp modifier */ tex2D(DamagedTextureSampler, i.texcoord.wz); + // lrp r1, v4.w, -c3.z, r0 + temp1 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul_pp r0, r2, r1 + temp0 = /* not implemented _pp modifier */ temp2 * temp1; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // mov_pp oC0.w, r0.w + out_color.w = /* not implemented _pp modifier */ temp0.w; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 90 + compile ps_3_0 PS_M_Array_Shader_1(), // 91 + compile ps_3_0 PS_M_Array_Shader_2(), // 92 + compile ps_3_0 PS_M_Array_Shader_3(), // 93 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mov r0.z, c0.z + temp0.z = float1(0.1); + // mad r1.xyz, c4, r0.z, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.zzz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v4 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0.1 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mov r0.w, c0.w + temp0.w = float1(0.1); + // mad r1.xyz, c4, r0.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.www + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v5.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v5 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, v4.xyyx + o.texcoord.zw = i.texcoord1.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 96 + compile vs_2_0 VS_L_Array_Shader_1(), // 97 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s1 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r3, v0.w, c0.x, r0 + temp3 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r1.xyz, r1, v0 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul r0, r3, r1 + temp0 = temp3 * temp1; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c1, 2, 1, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s2 + temp0 = tex2D(DamagedTextureSampler, temp0.xy); + // texld r1, t0, s1 + temp1 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r2, t0, s0 + temp2 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r3, t1, s3 + temp3 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // lrp r4, v0.w, c1.y, r0 + temp4 = lerp(temp0, float4(1, 1, 1, 1), i.color.w); + // mul r0.xyz, r2, c0 + temp0.xyz = temp2.xyz * RecolorColor.xyz; + // mad r0.xyz, r0, c1.x, -r2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + -temp2.xyz; + // mad r0.xyz, r1.z, r0, r2 + temp0.xyz = temp1.zzz * temp0.xyz + temp2.xyz; + // mul r2.xyz, r0, v0 + temp2.xyz = temp0.xyz * i.color.xyz; + // mul r0, r4, r2 + temp0 = temp4 * temp2; + // mul r1.xyz, r0, c2 + temp1.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 98 + compile ps_2_0 PS_L_Array_Shader_1(), // 99 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v3.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT2.xy, v2 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, v3 + o.texcoord2 = i.texcoord1; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 102 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 103 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, -0.3764706, 0, 0 + // dcl t0.xy + // dcl t2.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(DamagedTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // lrp r1.x, v0.x, c0.x, r0.w + temp1.x = lerp(temp0.w, float1(1), i.color.x); + // mad r0, r1.w, r1.x, c0.y + temp0 = temp1.w * temp1.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 104 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 105 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression24 Expression_2_0 Has PRES False +float Default_L_Expression24() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression26 Expression_2_0 Has PRES False +float Default_M_Expression26() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression28()]; // 86 + PixelShader = PS_H_Array[Default_Expression27()]; // 87 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression26()]; // 94 + PixelShader = PS_M_Array[Default_M_Expression25()]; // 95 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression24()]; // 100 + PixelShader = PS_L_Array[Default_L_Expression23()]; // 101 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 1; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 106 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 107 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/connectionline.fx b/connectionline.fx new file mode 100644 index 0000000..2d38d99 --- /dev/null +++ b/connectionline.fx @@ -0,0 +1,194 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +column_major float4x4 View : View : register(vs_2_0, c11); +float Time : Time; +float4 HouseColor : register(ps_2_0, c11) = { 1, 1, 1, 1 }; +float LineLength : register(vs_2_0, c16) = { 2.5 }; +texture LineTexture ; // 6 +sampler2D LineTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 8 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c17) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 13 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 17 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +// Default_PixelShader1 Pixel_2_0 Has PRES False +struct Default_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float4 Default_PixelShader1(Default_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(LineTextureSampler, i.texcoord.xy); + // texld r1, t1, s0 + temp1 = tex2D(LineTextureSampler, i.texcoord1.xy); + // texld r2, t2, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // mul r0, r0, c11 + temp0 = temp0 * HouseColor; + // mul r0.xyz, r2.x, r0 + temp0.xyz = temp2.xxx * temp0.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_VertexShader2 Vertex_2_0 Has PRES True +struct Default_VertexShader2_Input +{ + float4 position : POSITION; + float4 tangent : TANGENT; + float4 texcoord : TEXCOORD; +}; + +struct Default_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +Default_VertexShader2_Output Default_VertexShader2(Default_VertexShader2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + float4 expr15; + { + // Expression_2_1 + // mul c14.x, c0.x, (4) + expr14.x = Time.x * (4); + // mul c15.x, c0.x, (0.8) + expr15.x = Time.x * (0.8); + } + + Default_VertexShader2_Output o; + float4 temp0; + // def c0, -0.5, 10, 1, 0.006666667 + // dcl_position v0 + // dcl_tangent v1 + // dcl_texcoord v2 + // mul r0.xyz, v1.zxyw, c13.yzxw + temp0.xyz = i.tangent.zxy * (View._m02_m12_m22_m32).yzx; + // mad r0.xyz, v1.yzxw, c13.zxyw, -r0 + temp0.xyz = i.tangent.yzx * (View._m02_m12_m22_m32).zxy + -temp0.xyz; + // add r0.w, v2.x, c0.x + temp0.w = i.texcoord.x + float1(-0.5); + // mul r0.w, r0.w, c0.y + temp0.w = temp0.w * float1(10); + // mad r0.xyz, r0, r0.w, v0 + temp0.xyz = temp0.xyz * temp0.www + i.position.xyz; + // mov r0.w, c0.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c17.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r0.z, v2.y, c16.x + temp0.z = i.texcoord.y * LineLength.x; + // mov r0.w, c0.w + temp0.w = float1(0.006666667); + // mad oT0.y, r0.z, r0.w, -c14.x + o.texcoord.y = temp0.z * temp0.w + -expr14.x; + // mad oT1.y, r0.z, r0.w, -c15.x + o.texcoord1.y = temp0.z * temp0.w + -expr15.x; + // mul oT2.xy, r0, c17 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.x, v2.x + o.texcoord.x = i.texcoord.x; + // mov oT1.x, v2.x + o.texcoord1.x = i.texcoord.x; + // + + return o; +} + +technique Default +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_VertexShader2(); // 22 + PixelShader = compile ps_2_0 Default_PixelShader1(); // 23 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 1; + SrcBlend = 2; + DestBlend = 2; + } +} + diff --git a/cpuparticle.fx b/cpuparticle.fx new file mode 100644 index 0000000..99c9784 --- /dev/null +++ b/cpuparticle.fx @@ -0,0 +1,3753 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +struct { + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct { + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct { + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTexture ; // 8 +sampler2D ParticleTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +row_major float4x4 Projection : Projection; +column_major float4x3 View : View : register(vs_2_0, c20); +// Alpha2DShaderBillboard_M_PixelShader1 Pixel_2_0 Has PRES False +struct Alpha2DShaderBillboard_M_PixelShader1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Alpha2DShaderBillboard_M_PixelShader1(Alpha2DShaderBillboard_M_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Alpha2DShaderBillboard_M_VertexShader2 Vertex_2_0 Has PRES False +struct Alpha2DShaderBillboard_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Alpha2DShaderBillboard_M_VertexShader2_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +Alpha2DShaderBillboard_M_VertexShader2_Output Alpha2DShaderBillboard_M_VertexShader2(Alpha2DShaderBillboard_M_VertexShader2_Input i) +{ + Alpha2DShaderBillboard_M_VertexShader2_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// Additive2DShaderBillboard_M_PixelShader3 Pixel_2_0 Has PRES False +struct Additive2DShaderBillboard_M_PixelShader3_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Additive2DShaderBillboard_M_PixelShader3(Additive2DShaderBillboard_M_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive2DShaderBillboard_M_VertexShader4 Vertex_2_0 Has PRES False +struct Additive2DShaderBillboard_M_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Additive2DShaderBillboard_M_VertexShader4_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +Additive2DShaderBillboard_M_VertexShader4_Output Additive2DShaderBillboard_M_VertexShader4(Additive2DShaderBillboard_M_VertexShader4_Input i) +{ + Additive2DShaderBillboard_M_VertexShader4_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// MultiplicativeSpriteShaderBillboard_M_PixelShader5 Pixel_2_0 Has PRES False +struct MultiplicativeSpriteShaderBillboard_M_PixelShader5_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 MultiplicativeSpriteShaderBillboard_M_PixelShader5(MultiplicativeSpriteShaderBillboard_M_PixelShader5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// MultiplicativeSpriteShaderBillboard_M_VertexShader6 Vertex_2_0 Has PRES False +struct MultiplicativeSpriteShaderBillboard_M_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct MultiplicativeSpriteShaderBillboard_M_VertexShader6_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +MultiplicativeSpriteShaderBillboard_M_VertexShader6_Output MultiplicativeSpriteShaderBillboard_M_VertexShader6(MultiplicativeSpriteShaderBillboard_M_VertexShader6_Input i) +{ + MultiplicativeSpriteShaderBillboard_M_VertexShader6_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// ATestSpriteShaderBillboard_M_PixelShader7 Pixel_2_0 Has PRES False +struct ATestSpriteShaderBillboard_M_PixelShader7_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 ATestSpriteShaderBillboard_M_PixelShader7(ATestSpriteShaderBillboard_M_PixelShader7_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// ATestSpriteShaderBillboard_M_VertexShader8 Vertex_2_0 Has PRES False +struct ATestSpriteShaderBillboard_M_VertexShader8_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct ATestSpriteShaderBillboard_M_VertexShader8_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +ATestSpriteShaderBillboard_M_VertexShader8_Output ATestSpriteShaderBillboard_M_VertexShader8(ATestSpriteShaderBillboard_M_VertexShader8_Input i) +{ + ATestSpriteShaderBillboard_M_VertexShader8_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AlphaSpriteShaderBillboard_M_PixelShader9 Pixel_2_0 Has PRES False +struct AlphaSpriteShaderBillboard_M_PixelShader9_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AlphaSpriteShaderBillboard_M_PixelShader9(AlphaSpriteShaderBillboard_M_PixelShader9_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaSpriteShaderBillboard_M_VertexShader10 Vertex_2_0 Has PRES False +struct AlphaSpriteShaderBillboard_M_VertexShader10_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaSpriteShaderBillboard_M_VertexShader10_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AlphaSpriteShaderBillboard_M_VertexShader10_Output AlphaSpriteShaderBillboard_M_VertexShader10(AlphaSpriteShaderBillboard_M_VertexShader10_Input i) +{ + AlphaSpriteShaderBillboard_M_VertexShader10_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AdditiveAlphaTestSpriteShaderBillboard_M_PixelShader11 Pixel_2_0 Has PRES False +struct AdditiveAlphaTestSpriteShaderBillboard_M_PixelShader11_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AdditiveAlphaTestSpriteShaderBillboard_M_PixelShader11(AdditiveAlphaTestSpriteShaderBillboard_M_PixelShader11_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveAlphaTestSpriteShaderBillboard_M_VertexShader12 Vertex_2_0 Has PRES False +struct AdditiveAlphaTestSpriteShaderBillboard_M_VertexShader12_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveAlphaTestSpriteShaderBillboard_M_VertexShader12_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AdditiveAlphaTestSpriteShaderBillboard_M_VertexShader12_Output AdditiveAlphaTestSpriteShaderBillboard_M_VertexShader12(AdditiveAlphaTestSpriteShaderBillboard_M_VertexShader12_Input i) +{ + AdditiveAlphaTestSpriteShaderBillboard_M_VertexShader12_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AdditiveSpriteShaderBillboard_M_PixelShader13 Pixel_2_0 Has PRES False +struct AdditiveSpriteShaderBillboard_M_PixelShader13_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AdditiveSpriteShaderBillboard_M_PixelShader13(AdditiveSpriteShaderBillboard_M_PixelShader13_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveSpriteShaderBillboard_M_VertexShader14 Vertex_2_0 Has PRES False +struct AdditiveSpriteShaderBillboard_M_VertexShader14_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveSpriteShaderBillboard_M_VertexShader14_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AdditiveSpriteShaderBillboard_M_VertexShader14_Output AdditiveSpriteShaderBillboard_M_VertexShader14(AdditiveSpriteShaderBillboard_M_VertexShader14_Input i) +{ + AdditiveSpriteShaderBillboard_M_VertexShader14_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// Alpha2DShader_M_PixelShader15 Pixel_2_0 Has PRES False +struct Alpha2DShader_M_PixelShader15_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Alpha2DShader_M_PixelShader15(Alpha2DShader_M_PixelShader15_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Alpha2DShader_M_VertexShader16 Vertex_2_0 Has PRES False +struct Alpha2DShader_M_VertexShader16_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Alpha2DShader_M_VertexShader16_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +Alpha2DShader_M_VertexShader16_Output Alpha2DShader_M_VertexShader16(Alpha2DShader_M_VertexShader16_Input i) +{ + Alpha2DShader_M_VertexShader16_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// Additive2DShader_M_PixelShader17 Pixel_2_0 Has PRES False +struct Additive2DShader_M_PixelShader17_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Additive2DShader_M_PixelShader17(Additive2DShader_M_PixelShader17_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive2DShader_M_VertexShader18 Vertex_2_0 Has PRES False +struct Additive2DShader_M_VertexShader18_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Additive2DShader_M_VertexShader18_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +Additive2DShader_M_VertexShader18_Output Additive2DShader_M_VertexShader18(Additive2DShader_M_VertexShader18_Input i) +{ + Additive2DShader_M_VertexShader18_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// MultiplicativeSpriteShader_M_PixelShader19 Pixel_2_0 Has PRES False +struct MultiplicativeSpriteShader_M_PixelShader19_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 MultiplicativeSpriteShader_M_PixelShader19(MultiplicativeSpriteShader_M_PixelShader19_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// MultiplicativeSpriteShader_M_VertexShader20 Vertex_2_0 Has PRES False +struct MultiplicativeSpriteShader_M_VertexShader20_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct MultiplicativeSpriteShader_M_VertexShader20_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +MultiplicativeSpriteShader_M_VertexShader20_Output MultiplicativeSpriteShader_M_VertexShader20(MultiplicativeSpriteShader_M_VertexShader20_Input i) +{ + MultiplicativeSpriteShader_M_VertexShader20_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// ATestSpriteShader_M_PixelShader21 Pixel_2_0 Has PRES False +struct ATestSpriteShader_M_PixelShader21_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 ATestSpriteShader_M_PixelShader21(ATestSpriteShader_M_PixelShader21_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// ATestSpriteShader_M_VertexShader22 Vertex_2_0 Has PRES False +struct ATestSpriteShader_M_VertexShader22_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct ATestSpriteShader_M_VertexShader22_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +ATestSpriteShader_M_VertexShader22_Output ATestSpriteShader_M_VertexShader22(ATestSpriteShader_M_VertexShader22_Input i) +{ + ATestSpriteShader_M_VertexShader22_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AlphaSpriteShader_M_PixelShader23 Pixel_2_0 Has PRES False +struct AlphaSpriteShader_M_PixelShader23_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AlphaSpriteShader_M_PixelShader23(AlphaSpriteShader_M_PixelShader23_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaSpriteShader_M_VertexShader24 Vertex_2_0 Has PRES False +struct AlphaSpriteShader_M_VertexShader24_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaSpriteShader_M_VertexShader24_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AlphaSpriteShader_M_VertexShader24_Output AlphaSpriteShader_M_VertexShader24(AlphaSpriteShader_M_VertexShader24_Input i) +{ + AlphaSpriteShader_M_VertexShader24_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AdditiveAlphaTestSpriteShader_M_PixelShader25 Pixel_2_0 Has PRES False +struct AdditiveAlphaTestSpriteShader_M_PixelShader25_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AdditiveAlphaTestSpriteShader_M_PixelShader25(AdditiveAlphaTestSpriteShader_M_PixelShader25_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveAlphaTestSpriteShader_M_VertexShader26 Vertex_2_0 Has PRES False +struct AdditiveAlphaTestSpriteShader_M_VertexShader26_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveAlphaTestSpriteShader_M_VertexShader26_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AdditiveAlphaTestSpriteShader_M_VertexShader26_Output AdditiveAlphaTestSpriteShader_M_VertexShader26(AdditiveAlphaTestSpriteShader_M_VertexShader26_Input i) +{ + AdditiveAlphaTestSpriteShader_M_VertexShader26_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AdditiveSpriteShader_M_PixelShader27 Pixel_2_0 Has PRES False +struct AdditiveSpriteShader_M_PixelShader27_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AdditiveSpriteShader_M_PixelShader27(AdditiveSpriteShader_M_PixelShader27_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveSpriteShader_M_VertexShader28 Vertex_2_0 Has PRES False +struct AdditiveSpriteShader_M_VertexShader28_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveSpriteShader_M_VertexShader28_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AdditiveSpriteShader_M_VertexShader28_Output AdditiveSpriteShader_M_VertexShader28(AdditiveSpriteShader_M_VertexShader28_Input i) +{ + AdditiveSpriteShader_M_VertexShader28_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// Alpha2DShaderBillboard_PixelShader29 Pixel_2_0 Has PRES False +struct Alpha2DShaderBillboard_PixelShader29_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Alpha2DShaderBillboard_PixelShader29(Alpha2DShaderBillboard_PixelShader29_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Alpha2DShaderBillboard_VertexShader30 Vertex_2_0 Has PRES False +struct Alpha2DShaderBillboard_VertexShader30_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Alpha2DShaderBillboard_VertexShader30_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +Alpha2DShaderBillboard_VertexShader30_Output Alpha2DShaderBillboard_VertexShader30(Alpha2DShaderBillboard_VertexShader30_Input i) +{ + Alpha2DShaderBillboard_VertexShader30_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// Additive2DShaderBillboard_PixelShader31 Pixel_2_0 Has PRES False +struct Additive2DShaderBillboard_PixelShader31_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Additive2DShaderBillboard_PixelShader31(Additive2DShaderBillboard_PixelShader31_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive2DShaderBillboard_VertexShader32 Vertex_2_0 Has PRES False +struct Additive2DShaderBillboard_VertexShader32_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Additive2DShaderBillboard_VertexShader32_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +Additive2DShaderBillboard_VertexShader32_Output Additive2DShaderBillboard_VertexShader32(Additive2DShaderBillboard_VertexShader32_Input i) +{ + Additive2DShaderBillboard_VertexShader32_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// MultiplicativeSpriteShaderBillboard_PixelShader33 Pixel_2_0 Has PRES False +struct MultiplicativeSpriteShaderBillboard_PixelShader33_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 MultiplicativeSpriteShaderBillboard_PixelShader33(MultiplicativeSpriteShaderBillboard_PixelShader33_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// MultiplicativeSpriteShaderBillboard_VertexShader34 Vertex_2_0 Has PRES False +struct MultiplicativeSpriteShaderBillboard_VertexShader34_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct MultiplicativeSpriteShaderBillboard_VertexShader34_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +MultiplicativeSpriteShaderBillboard_VertexShader34_Output MultiplicativeSpriteShaderBillboard_VertexShader34(MultiplicativeSpriteShaderBillboard_VertexShader34_Input i) +{ + MultiplicativeSpriteShaderBillboard_VertexShader34_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// ATestSpriteShaderBillboard_PixelShader35 Pixel_2_0 Has PRES False +struct ATestSpriteShaderBillboard_PixelShader35_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 ATestSpriteShaderBillboard_PixelShader35(ATestSpriteShaderBillboard_PixelShader35_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// ATestSpriteShaderBillboard_VertexShader36 Vertex_2_0 Has PRES False +struct ATestSpriteShaderBillboard_VertexShader36_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct ATestSpriteShaderBillboard_VertexShader36_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +ATestSpriteShaderBillboard_VertexShader36_Output ATestSpriteShaderBillboard_VertexShader36(ATestSpriteShaderBillboard_VertexShader36_Input i) +{ + ATestSpriteShaderBillboard_VertexShader36_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AlphaSpriteShaderBillboard_PixelShader37 Pixel_2_0 Has PRES False +struct AlphaSpriteShaderBillboard_PixelShader37_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AlphaSpriteShaderBillboard_PixelShader37(AlphaSpriteShaderBillboard_PixelShader37_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaSpriteShaderBillboard_VertexShader38 Vertex_2_0 Has PRES False +struct AlphaSpriteShaderBillboard_VertexShader38_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaSpriteShaderBillboard_VertexShader38_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AlphaSpriteShaderBillboard_VertexShader38_Output AlphaSpriteShaderBillboard_VertexShader38(AlphaSpriteShaderBillboard_VertexShader38_Input i) +{ + AlphaSpriteShaderBillboard_VertexShader38_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AdditiveAlphaTestSpriteShaderBillboard_PixelShader39 Pixel_2_0 Has PRES False +struct AdditiveAlphaTestSpriteShaderBillboard_PixelShader39_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AdditiveAlphaTestSpriteShaderBillboard_PixelShader39(AdditiveAlphaTestSpriteShaderBillboard_PixelShader39_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveAlphaTestSpriteShaderBillboard_VertexShader40 Vertex_2_0 Has PRES False +struct AdditiveAlphaTestSpriteShaderBillboard_VertexShader40_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveAlphaTestSpriteShaderBillboard_VertexShader40_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AdditiveAlphaTestSpriteShaderBillboard_VertexShader40_Output AdditiveAlphaTestSpriteShaderBillboard_VertexShader40(AdditiveAlphaTestSpriteShaderBillboard_VertexShader40_Input i) +{ + AdditiveAlphaTestSpriteShaderBillboard_VertexShader40_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AdditiveSpriteShaderBillboard_PixelShader41 Pixel_2_0 Has PRES False +struct AdditiveSpriteShaderBillboard_PixelShader41_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AdditiveSpriteShaderBillboard_PixelShader41(AdditiveSpriteShaderBillboard_PixelShader41_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveSpriteShaderBillboard_VertexShader42 Vertex_2_0 Has PRES False +struct AdditiveSpriteShaderBillboard_VertexShader42_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveSpriteShaderBillboard_VertexShader42_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AdditiveSpriteShaderBillboard_VertexShader42_Output AdditiveSpriteShaderBillboard_VertexShader42(AdditiveSpriteShaderBillboard_VertexShader42_Input i) +{ + AdditiveSpriteShaderBillboard_VertexShader42_Output o; + float4 temp0; + float3 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c13, 0.5, 0.5, 1, -1 + // def c14, -0.5, 0.5, 0, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c11[a0.x].x, -r1.y, r0.z + temp0.z = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c13.zwzw, c13.x + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // mul r0.yzw, r0.z, c21.xxyz + temp0.yzw = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r0.xyz, r0.x, c20, r0.yzww + temp0.xyz = temp0.xxx * (View._m00_m10_m20_m30).xyz + temp0.yzw; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyz, v1.y, r0, r1 + temp0.xyz = i.texcoord.yyy * temp0.xyz + temp1.xyz; + // mov r0.w, c13.z + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// Alpha2DShader_PixelShader43 Pixel_2_0 Has PRES False +struct Alpha2DShader_PixelShader43_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Alpha2DShader_PixelShader43(Alpha2DShader_PixelShader43_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Alpha2DShader_VertexShader44 Vertex_2_0 Has PRES False +struct Alpha2DShader_VertexShader44_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Alpha2DShader_VertexShader44_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +Alpha2DShader_VertexShader44_Output Alpha2DShader_VertexShader44(Alpha2DShader_VertexShader44_Input i) +{ + Alpha2DShader_VertexShader44_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// Additive2DShader_PixelShader45 Pixel_2_0 Has PRES False +struct Additive2DShader_PixelShader45_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Additive2DShader_PixelShader45(Additive2DShader_PixelShader45_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive2DShader_VertexShader46 Vertex_2_0 Has PRES False +struct Additive2DShader_VertexShader46_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Additive2DShader_VertexShader46_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +Additive2DShader_VertexShader46_Output Additive2DShader_VertexShader46(Additive2DShader_VertexShader46_Input i) +{ + Additive2DShader_VertexShader46_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// MultiplicativeSpriteShader_PixelShader47 Pixel_2_0 Has PRES False +struct MultiplicativeSpriteShader_PixelShader47_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 MultiplicativeSpriteShader_PixelShader47(MultiplicativeSpriteShader_PixelShader47_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// MultiplicativeSpriteShader_VertexShader48 Vertex_2_0 Has PRES False +struct MultiplicativeSpriteShader_VertexShader48_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct MultiplicativeSpriteShader_VertexShader48_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +MultiplicativeSpriteShader_VertexShader48_Output MultiplicativeSpriteShader_VertexShader48(MultiplicativeSpriteShader_VertexShader48_Input i) +{ + MultiplicativeSpriteShader_VertexShader48_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// ATestSpriteShader_PixelShader49 Pixel_2_0 Has PRES False +struct ATestSpriteShader_PixelShader49_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 ATestSpriteShader_PixelShader49(ATestSpriteShader_PixelShader49_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// ATestSpriteShader_VertexShader50 Vertex_2_0 Has PRES False +struct ATestSpriteShader_VertexShader50_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct ATestSpriteShader_VertexShader50_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +ATestSpriteShader_VertexShader50_Output ATestSpriteShader_VertexShader50(ATestSpriteShader_VertexShader50_Input i) +{ + ATestSpriteShader_VertexShader50_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AlphaSpriteShader_PixelShader51 Pixel_2_0 Has PRES False +struct AlphaSpriteShader_PixelShader51_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AlphaSpriteShader_PixelShader51(AlphaSpriteShader_PixelShader51_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaSpriteShader_VertexShader52 Vertex_2_0 Has PRES False +struct AlphaSpriteShader_VertexShader52_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaSpriteShader_VertexShader52_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AlphaSpriteShader_VertexShader52_Output AlphaSpriteShader_VertexShader52(AlphaSpriteShader_VertexShader52_Input i) +{ + AlphaSpriteShader_VertexShader52_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AdditiveAlphaTestSpriteShader_PixelShader53 Pixel_2_0 Has PRES False +struct AdditiveAlphaTestSpriteShader_PixelShader53_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AdditiveAlphaTestSpriteShader_PixelShader53(AdditiveAlphaTestSpriteShader_PixelShader53_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveAlphaTestSpriteShader_VertexShader54 Vertex_2_0 Has PRES False +struct AdditiveAlphaTestSpriteShader_VertexShader54_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveAlphaTestSpriteShader_VertexShader54_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AdditiveAlphaTestSpriteShader_VertexShader54_Output AdditiveAlphaTestSpriteShader_VertexShader54(AdditiveAlphaTestSpriteShader_VertexShader54_Input i) +{ + AdditiveAlphaTestSpriteShader_VertexShader54_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +// AdditiveSpriteShader_PixelShader55 Pixel_2_0 Has PRES False +struct AdditiveSpriteShader_PixelShader55_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AdditiveSpriteShader_PixelShader55(AdditiveSpriteShader_PixelShader55_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveSpriteShader_VertexShader56 Vertex_2_0 Has PRES False +struct AdditiveSpriteShader_VertexShader56_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveSpriteShader_VertexShader56_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; +}; + +AdditiveSpriteShader_VertexShader56_Output AdditiveSpriteShader_VertexShader56(AdditiveSpriteShader_VertexShader56_Input i) +{ + AdditiveSpriteShader_VertexShader56_Output o; + float4 temp0; + float2 temp1; + float addr0; + // def c12, 0.5, -0.5, 6.283185, -3.141593 + // def c11, -0.5, -0.5, 0.1591549, 0.5 + // def c14, -0.5, 0.5, 1, -1 + // def c13, 0.5, 0.5, 1, 0 + // def c15, 0, 0, 0, 0 + // def c16, -0.25, -0.25, 0, 0 + // def c17, 0.25, -0.25, 0, 0 + // def c18, 0.25, 0.25, 0, 0 + // def c19, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0.x, v1.x, c11.z, c11.w + temp0.x = i.texcoord.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c12.z, c12.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c0, c1 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // frc r0.x, v0.w + temp0.x = frac(i.position.w); + // add r0.x, -r0.x, v0.w + temp0.x = -temp0.x + i.position.w; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.xyz, r1.xyxw, c11[a0.x].xyyw + temp0.xyz = temp1.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.w, c11[a0.x].x, -r1.y, r0.z + temp0.w = float1(-0.5) * -temp1.y + temp0.z; + // mov r1.xy, c11[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad oT0.xy, r1, c14.zwzw, c14.y + o.texcoord = temp1 * float4(1, -1, 1, -1) + float4(0.5, 0.5, 0.5, 0.5); + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, v0 + temp0.xy = i.position.xy; + // mad r0.xy, v1.y, r0.zwzw, r0 + temp0.xy = i.texcoord.yy * temp0.zw + temp0.xy; + // mad r0.zw, v0.z, c13, c13.xywz + temp0.zw = i.position.zz * float2(1, 0) + float2(0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +technique AdditiveSpriteShader +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveSpriteShader_VertexShader56(); // 15 + PixelShader = compile ps_2_0 AdditiveSpriteShader_PixelShader55(); // 16 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AdditiveAlphaTestSpriteShader +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveAlphaTestSpriteShader_VertexShader54(); // 17 + PixelShader = compile ps_2_0 AdditiveAlphaTestSpriteShader_PixelShader53(); // 18 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique AlphaSpriteShader +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaSpriteShader_VertexShader52(); // 19 + PixelShader = compile ps_2_0 AlphaSpriteShader_PixelShader51(); // 20 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique ATestSpriteShader +{ + pass P0 + { + VertexShader = compile vs_2_0 ATestSpriteShader_VertexShader50(); // 21 + PixelShader = compile ps_2_0 ATestSpriteShader_PixelShader49(); // 22 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique MultiplicativeSpriteShader +{ + pass P0 + { + VertexShader = compile vs_2_0 MultiplicativeSpriteShader_VertexShader48(); // 23 + PixelShader = compile ps_2_0 MultiplicativeSpriteShader_PixelShader47(); // 24 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + AlphaTestEnable = 0; + } +} + +technique Additive2DShader +{ + pass P0 + { + VertexShader = compile vs_2_0 Additive2DShader_VertexShader46(); // 25 + PixelShader = compile ps_2_0 Additive2DShader_PixelShader45(); // 26 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique Alpha2DShader +{ + pass P0 + { + VertexShader = compile vs_2_0 Alpha2DShader_VertexShader44(); // 27 + PixelShader = compile ps_2_0 Alpha2DShader_PixelShader43(); // 28 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique AdditiveSpriteShaderBillboard +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveSpriteShaderBillboard_VertexShader42(); // 29 + PixelShader = compile ps_2_0 AdditiveSpriteShaderBillboard_PixelShader41(); // 30 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AdditiveAlphaTestSpriteShaderBillboard +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveAlphaTestSpriteShaderBillboard_VertexShader40(); // 31 + PixelShader = compile ps_2_0 AdditiveAlphaTestSpriteShaderBillboard_PixelShader39(); // 32 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique AlphaSpriteShaderBillboard +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaSpriteShaderBillboard_VertexShader38(); // 33 + PixelShader = compile ps_2_0 AlphaSpriteShaderBillboard_PixelShader37(); // 34 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique ATestSpriteShaderBillboard +{ + pass P0 + { + VertexShader = compile vs_2_0 ATestSpriteShaderBillboard_VertexShader36(); // 35 + PixelShader = compile ps_2_0 ATestSpriteShaderBillboard_PixelShader35(); // 36 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique MultiplicativeSpriteShaderBillboard +{ + pass P0 + { + VertexShader = compile vs_2_0 MultiplicativeSpriteShaderBillboard_VertexShader34(); // 37 + PixelShader = compile ps_2_0 MultiplicativeSpriteShaderBillboard_PixelShader33(); // 38 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + AlphaTestEnable = 0; + } +} + +technique Additive2DShaderBillboard +{ + pass P0 + { + VertexShader = compile vs_2_0 Additive2DShaderBillboard_VertexShader32(); // 39 + PixelShader = compile ps_2_0 Additive2DShaderBillboard_PixelShader31(); // 40 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique Alpha2DShaderBillboard +{ + pass P0 + { + VertexShader = compile vs_2_0 Alpha2DShaderBillboard_VertexShader30(); // 41 + PixelShader = compile ps_2_0 Alpha2DShaderBillboard_PixelShader29(); // 42 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique AdditiveSpriteShader_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveSpriteShader_M_VertexShader28(); // 43 + PixelShader = compile ps_2_0 AdditiveSpriteShader_M_PixelShader27(); // 44 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AdditiveAlphaTestSpriteShader_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveAlphaTestSpriteShader_M_VertexShader26(); // 45 + PixelShader = compile ps_2_0 AdditiveAlphaTestSpriteShader_M_PixelShader25(); // 46 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique AlphaSpriteShader_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaSpriteShader_M_VertexShader24(); // 47 + PixelShader = compile ps_2_0 AlphaSpriteShader_M_PixelShader23(); // 48 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique ATestSpriteShader_M +{ + pass P0 + { + VertexShader = compile vs_2_0 ATestSpriteShader_M_VertexShader22(); // 49 + PixelShader = compile ps_2_0 ATestSpriteShader_M_PixelShader21(); // 50 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique MultiplicativeSpriteShader_M +{ + pass P0 + { + VertexShader = compile vs_2_0 MultiplicativeSpriteShader_M_VertexShader20(); // 51 + PixelShader = compile ps_2_0 MultiplicativeSpriteShader_M_PixelShader19(); // 52 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + AlphaTestEnable = 0; + } +} + +technique Additive2DShader_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Additive2DShader_M_VertexShader18(); // 53 + PixelShader = compile ps_2_0 Additive2DShader_M_PixelShader17(); // 54 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique Alpha2DShader_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Alpha2DShader_M_VertexShader16(); // 55 + PixelShader = compile ps_2_0 Alpha2DShader_M_PixelShader15(); // 56 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique AdditiveSpriteShaderBillboard_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveSpriteShaderBillboard_M_VertexShader14(); // 57 + PixelShader = compile ps_2_0 AdditiveSpriteShaderBillboard_M_PixelShader13(); // 58 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AdditiveAlphaTestSpriteShaderBillboard_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveAlphaTestSpriteShaderBillboard_M_VertexShader12(); // 59 + PixelShader = compile ps_2_0 AdditiveAlphaTestSpriteShaderBillboard_M_PixelShader11(); // 60 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique AlphaSpriteShaderBillboard_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaSpriteShaderBillboard_M_VertexShader10(); // 61 + PixelShader = compile ps_2_0 AlphaSpriteShaderBillboard_M_PixelShader9(); // 62 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique ATestSpriteShaderBillboard_M +{ + pass P0 + { + VertexShader = compile vs_2_0 ATestSpriteShaderBillboard_M_VertexShader8(); // 63 + PixelShader = compile ps_2_0 ATestSpriteShaderBillboard_M_PixelShader7(); // 64 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique MultiplicativeSpriteShaderBillboard_M +{ + pass P0 + { + VertexShader = compile vs_2_0 MultiplicativeSpriteShaderBillboard_M_VertexShader6(); // 65 + PixelShader = compile ps_2_0 MultiplicativeSpriteShaderBillboard_M_PixelShader5(); // 66 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + AlphaTestEnable = 0; + } +} + +technique Additive2DShaderBillboard_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Additive2DShaderBillboard_M_VertexShader4(); // 67 + PixelShader = compile ps_2_0 Additive2DShaderBillboard_M_PixelShader3(); // 68 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique Alpha2DShaderBillboard_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Alpha2DShaderBillboard_M_VertexShader2(); // 69 + PixelShader = compile ps_2_0 Alpha2DShaderBillboard_M_PixelShader1(); // 70 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + diff --git a/debug.fx b/debug.fx new file mode 100644 index 0000000..621269f --- /dev/null +++ b/debug.fx @@ -0,0 +1,529 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture ShadowMap ; // 2 +sampler2D ShadowMapSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + MinFilter = 1; + MagFilter = 1; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float4 FlatColorOverride ; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +// CollisionBox_PixelShader1 Pixel_2_0 Has PRES False +float4 CollisionBox_PixelShader1(float4 color : COLOR) : COLOR +{ + float4 out_color; + // dcl v0 + // mov oC0, v0 + out_color = color; + // + + return out_color; +} + +// CollisionBox_VertexShader2 Vertex_2_0 Has PRES False +struct CollisionBox_VertexShader2_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; +}; + +struct CollisionBox_VertexShader2_Output +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +CollisionBox_VertexShader2_Output CollisionBox_VertexShader2(CollisionBox_VertexShader2_Input i) +{ + CollisionBox_VertexShader2_Output o; + float4 temp0; + // def c0, 1, 0, 0.5, 0.25 + // def c1, 0.8, 0.7, 0.2, 0 + // def c2, 0, 0.3, 0.9, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v1.xzyw, -c0.zzww + temp0.x = dot(i.normal.xzy, float3(-0.5, -0.5, -0.25)); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // min r0.x, r0.x, c0.x + temp0.x = min(temp0.x, float1(1)); + // mul r0.xyz, r0.x, c2 + temp0.xyz = temp0.xxx * float3(0, 0.3, 0.9); + // dp3 r0.w, v1.xzyw, c0.zzww + temp0.w = dot(i.normal.xzy, float3(0.5, 0.5, 0.25)); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // min r0.w, r0.w, c0.x + temp0.w = min(temp0.w, float1(1)); + // mad oD0.xyz, r0.w, c1, r0 + o.color.xyz = temp0.www * float3(0.8, 0.7, 0.2) + temp0.xyz; + // mov oD0.w, v2.w + o.color.w = i.color.w; + // + + return o; +} + +// DrawObject_Alpha_PixelShader3 Pixel_2_0 Has PRES False +float4 DrawObject_Alpha_PixelShader3(float4 color : COLOR) : COLOR +{ + float4 out_color; + // dcl v0 + // mov oC0, v0 + out_color = color; + // + + return out_color; +} + +// DrawObject_Alpha_VertexShader4 Vertex_2_0 Has PRES False +struct DrawObject_Alpha_VertexShader4_Input +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +struct DrawObject_Alpha_VertexShader4_Output +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +DrawObject_Alpha_VertexShader4_Output DrawObject_Alpha_VertexShader4(DrawObject_Alpha_VertexShader4_Input i) +{ + DrawObject_Alpha_VertexShader4_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_color v1 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v1 + o.color = i.color; + // + + return o; +} + +// DrawObject_Opaque_ZTest_PixelShader5 Pixel_2_0 Has PRES False +float4 DrawObject_Opaque_ZTest_PixelShader5(float4 color : COLOR) : COLOR +{ + float4 out_color; + // dcl v0 + // mov oC0, v0 + out_color = color; + // + + return out_color; +} + +// DrawObject_Opaque_ZTest_VertexShader6 Vertex_2_0 Has PRES False +struct DrawObject_Opaque_ZTest_VertexShader6_Input +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +struct DrawObject_Opaque_ZTest_VertexShader6_Output +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +DrawObject_Opaque_ZTest_VertexShader6_Output DrawObject_Opaque_ZTest_VertexShader6(DrawObject_Opaque_ZTest_VertexShader6_Input i) +{ + DrawObject_Opaque_ZTest_VertexShader6_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_color v1 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v1 + o.color = i.color; + // + + return o; +} + +// DrawObject_Opaque_PixelShader7 Pixel_2_0 Has PRES False +float4 DrawObject_Opaque_PixelShader7(float4 color : COLOR) : COLOR +{ + float4 out_color; + // dcl v0 + // mov oC0, v0 + out_color = color; + // + + return out_color; +} + +// DrawObject_Opaque_VertexShader8 Vertex_2_0 Has PRES False +struct DrawObject_Opaque_VertexShader8_Input +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +struct DrawObject_Opaque_VertexShader8_Output +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +DrawObject_Opaque_VertexShader8_Output DrawObject_Opaque_VertexShader8(DrawObject_Opaque_VertexShader8_Input i) +{ + DrawObject_Opaque_VertexShader8_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_color v1 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v1 + o.color = i.color; + // + + return o; +} + +// DebugDisplay_PixelShader9 Pixel_2_0 Has PRES False +float4 DebugDisplay_PixelShader9(float4 color : COLOR) : COLOR +{ + float4 out_color; + // dcl v0 + // mov oC0, v0 + out_color = color; + // + + return out_color; +} + +// DebugDisplay_VertexShader10 Vertex_2_0 Has PRES True +struct DebugDisplay_VertexShader10_Output +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +DebugDisplay_VertexShader10_Output DebugDisplay_VertexShader10(float4 position : POSITION) +{ + /* + PRSI + OutputRegisterOffset: 15 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 15 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr15; + { + // Expression_2_1 + // mov c15, c0 + expr15 = FlatColorOverride; + } + + DebugDisplay_VertexShader10_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, c15 + o.color = expr15; + // + + return o; +} + +// DebugIcons_Regular_PixelShader11 Pixel_2_0 Has PRES False +float4 DebugIcons_Regular_PixelShader11(float4 color : COLOR) : COLOR +{ + float4 out_color; + // dcl v0 + // mov oC0, v0 + out_color = color; + // + + return out_color; +} + +// DebugIcons_Regular_VertexShader12 Vertex_2_0 Has PRES False +struct DebugIcons_Regular_VertexShader12_Input +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +struct DebugIcons_Regular_VertexShader12_Output +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +DebugIcons_Regular_VertexShader12_Output DebugIcons_Regular_VertexShader12(DebugIcons_Regular_VertexShader12_Input i) +{ + DebugIcons_Regular_VertexShader12_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_color v1 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v1 + o.color = i.color; + // + + return o; +} + +// DisplayShadowMap_PixelShader13 Pixel_2_0 Has PRES False +float4 DisplayShadowMap_PixelShader13(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ShadowMapSampler, texcoord.xy); + // mov r0, r0.x + temp0 = temp0.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// DisplayShadowMap_VertexShader14 Vertex_2_0 Has PRES False +struct DisplayShadowMap_VertexShader14_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct DisplayShadowMap_VertexShader14_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +DisplayShadowMap_VertexShader14_Output DisplayShadowMap_VertexShader14(DisplayShadowMap_VertexShader14_Input i) +{ + DisplayShadowMap_VertexShader14_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique DisplayShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 DisplayShadowMap_VertexShader14(); // 9 + PixelShader = compile ps_2_0 DisplayShadowMap_PixelShader13(); // 10 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique DebugIcons_Regular +{ + pass P0 + { + VertexShader = compile vs_2_0 DebugIcons_Regular_VertexShader12(); // 11 + PixelShader = compile ps_2_0 DebugIcons_Regular_PixelShader11(); // 12 + ZEnable = 0; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + ColorWriteEnable = 15; + AlphaTestEnable = 0; + } +} + +technique DebugDisplay +{ + pass P0 + { + VertexShader = compile vs_2_0 DebugDisplay_VertexShader10(); // 13 + PixelShader = compile ps_2_0 DebugDisplay_PixelShader9(); // 14 + ZEnable = 0; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique DrawObject_Opaque +{ + pass P0 + { + VertexShader = compile vs_2_0 DrawObject_Opaque_VertexShader8(); // 15 + PixelShader = compile ps_2_0 DrawObject_Opaque_PixelShader7(); // 16 + FillMode = 3; + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + ColorWriteEnable = 15; + } +} + +technique DrawObject_Opaque_ZTest +{ + pass P0 + { + VertexShader = compile vs_2_0 DrawObject_Opaque_ZTest_VertexShader6(); // 17 + PixelShader = compile ps_2_0 DrawObject_Opaque_ZTest_PixelShader5(); // 18 + FillMode = 3; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + ColorWriteEnable = 15; + } +} + +technique DrawObject_Alpha +{ + pass P0 + { + VertexShader = compile vs_2_0 DrawObject_Alpha_VertexShader4(); // 19 + PixelShader = compile ps_2_0 DrawObject_Alpha_PixelShader3(); // 20 + FillMode = 3; + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + ColorWriteEnable = 15; + } +} + +technique CollisionBox +{ + pass P0 + { + VertexShader = compile vs_2_0 CollisionBox_VertexShader2(); // 21 + PixelShader = compile ps_2_0 CollisionBox_PixelShader1(); // 22 + FillMode = 3; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + ColorWriteEnable = 15; + } +} + diff --git a/decal.fx b/decal.fx new file mode 100644 index 0000000..c44b457 --- /dev/null +++ b/decal.fx @@ -0,0 +1,495 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture BaseSampler ; // 2 +sampler2D BaseSamplerSampler = +sampler_state +{ + Texture = ; // 5 + AddressU = 3; + AddressV = 3; + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; +}; +texture MaskSampler ; // 9 +sampler2D MaskSamplerSampler = +sampler_state +{ + Texture = ; // 12 + AddressU = 3; + AddressV = 3; + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; +}; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +row_major float4x3 World : World; +float Time : Time; +// MergeCombinePass_PixelShader1 Pixel_2_0 Has PRES False +struct MergeCombinePass_PixelShader1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 MergeCombinePass_PixelShader1(MergeCombinePass_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// MergeCombinePass_VertexShader2 Vertex_2_0 Has PRES False +struct MergeCombinePass_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct MergeCombinePass_VertexShader2_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +MergeCombinePass_VertexShader2_Output MergeCombinePass_VertexShader2(MergeCombinePass_VertexShader2_Input i) +{ + MergeCombinePass_VertexShader2_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// MergeStencilPass_PixelShader3 Pixel_2_0 Has PRES False +struct MergeStencilPass_PixelShader3_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 MergeStencilPass_PixelShader3(MergeStencilPass_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(MaskSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// MergeStencilPass_VertexShader4 Vertex_2_0 Has PRES False +struct MergeStencilPass_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct MergeStencilPass_VertexShader4_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +MergeStencilPass_VertexShader4_Output MergeStencilPass_VertexShader4(MergeStencilPass_VertexShader4_Input i) +{ + MergeStencilPass_VertexShader4_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Multiply_PixelShader5 Pixel_2_0 Has PRES False +struct Multiply_PixelShader5_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Multiply_PixelShader5(Multiply_PixelShader5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Multiply_VertexShader6 Vertex_2_0 Has PRES False +struct Multiply_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Multiply_VertexShader6_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Multiply_VertexShader6_Output Multiply_VertexShader6(Multiply_VertexShader6_Input i) +{ + Multiply_VertexShader6_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Add_PixelShader7 Pixel_2_0 Has PRES False +struct Add_PixelShader7_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Add_PixelShader7(Add_PixelShader7_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Add_VertexShader8 Vertex_2_0 Has PRES False +struct Add_VertexShader8_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Add_VertexShader8_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Add_VertexShader8_Output Add_VertexShader8(Add_VertexShader8_Input i) +{ + Add_VertexShader8_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Alpha_PixelShader9 Pixel_2_0 Has PRES False +struct Alpha_PixelShader9_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Alpha_PixelShader9(Alpha_PixelShader9_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Alpha_VertexShader10 Vertex_2_0 Has PRES False +struct Alpha_VertexShader10_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Alpha_VertexShader10_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Alpha_VertexShader10_Output Alpha_VertexShader10(Alpha_VertexShader10_Input i) +{ + Alpha_VertexShader10_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Alpha +{ + pass P0 + { + VertexShader = compile vs_2_0 Alpha_VertexShader10(); // 16 + PixelShader = compile ps_2_0 Alpha_PixelShader9(); // 17 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + DepthBias = -0.0001; + } +} + +technique Add +{ + pass P0 + { + VertexShader = compile vs_2_0 Add_VertexShader8(); // 18 + PixelShader = compile ps_2_0 Add_PixelShader7(); // 19 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + DepthBias = -0.0001; + } +} + +technique Multiply +{ + pass P0 + { + VertexShader = compile vs_2_0 Multiply_VertexShader6(); // 20 + PixelShader = compile ps_2_0 Multiply_PixelShader5(); // 21 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 1; + DestBlend = 3; + AlphaTestEnable = 0; + DepthBias = -0.0001; + } +} + +technique MergeStencilPass +{ + pass P0 + { + VertexShader = compile vs_2_0 MergeStencilPass_VertexShader4(); // 22 + PixelShader = compile ps_2_0 MergeStencilPass_PixelShader3(); // 23 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + ColorWriteEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 1; + DestBlend = 2; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + StencilFunc = 8; + StencilPass = 3; + StencilEnable = 1; + StencilRef = 255; + StencilMask = 4; + StencilWriteMask = 4; + StencilZFail = 1; + StencilFail = 1; + DepthBias = -0.0001; + } +} + +technique MergeCombinePass +{ + pass P0 + { + VertexShader = compile vs_2_0 MergeCombinePass_VertexShader2(); // 24 + PixelShader = compile ps_2_0 MergeCombinePass_PixelShader1(); // 25 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + ColorWriteEnable = 15; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + StencilFunc = 6; + StencilPass = 1; + StencilEnable = 1; + StencilRef = 255; + StencilMask = 4; + StencilWriteMask = 4; + StencilZFail = 1; + StencilFail = 1; + DepthBias = -0.0001; + } +} + diff --git a/defaultw3d.fx b/defaultw3d.fx new file mode 100644 index 0000000..7bfb3e5 --- /dev/null +++ b/defaultw3d.fx @@ -0,0 +1,42818 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(vs_2_0, c0) : register(vs_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float3 ColorAmbient : register(vs_2_0, c23) : register(vs_3_0, c26) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c24) : register(vs_3_0, c27) = { 1, 1, 1 }; +float3 ColorSpecular ; +float Shininess : register(vs_2_0, c26) : register(vs_3_0, c29) = { 1 }; +float3 ColorEmissive ; +float EmissiveHDRMultipler = { 1 }; +float Opacity : register(vs_2_0, c27) : register(vs_3_0, c30) = { 1 }; +float EdgeFadeOut ; +int NumTextures = { 1 }; +texture Texture_0 ; // 37 +sampler2D Texture_0Sampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 39 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture Texture_1 ; // 42 +sampler2D Texture_1Sampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool UseRecolorColors ; +bool HouseColorPulse : register(vs_2_0, c28) : register(vs_3_0, c31) ; +bool UseWorldCords : register(vs_2_0, c29) : register(vs_3_0, c32) ; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +int SecondaryTextureBlendMode ; +int TexCoordMapper_0 ; +float4 TexCoordTransform_0 = { 1, 1, 0, 0 }; +float4 TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0 = { 0, 1, 1, 0 }; +int TexCoordMapper_1 ; +float4 TexCoordTransform_1 : register(vs_2_0, c30) : register(vs_3_0, c33) = { 1, 1, 0, 0 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c31) : register(vs_3_0, c34) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 65 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 68 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 72 +sampler2D CloudTextureSampler : register(ps_2_0, s3) : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 76 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +column_major float4x4 View : View : register(vs_2_0, c18); +float Time : Time; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c21.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c19 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c20 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c21.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c18 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c19, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c22.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c20 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c23.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c24.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c24 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c21.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c19 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c20 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c21.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c18 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c19, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c22.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c20 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c23.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c24.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c24 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c21.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c19 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c20 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c21.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c18 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c19, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c22.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c20 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c23.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c24.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c24 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_3 Vertex_3_0 Has PRES True +struct VS_Array_Shader_3_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_3_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_3_Output VS_Array_Shader_3(VS_Array_Shader_3_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_3_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c20, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c23.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c21 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xy, c25 + temp0.xy = TexCoordTransform_0.xy; + // mad o3.xy, v2, r0, c18 + o.texcoord = i.texcoord * temp0 + expr18; + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c24.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c26.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c26 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_4 Vertex_3_0 Has PRES True +struct VS_Array_Shader_4_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_4_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_4_Output VS_Array_Shader_4(VS_Array_Shader_4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_4_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c25 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v3, r1, c18 + o.texcoord = i.texcoord * temp1 + expr18; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c24.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_5 Vertex_3_0 Has PRES True +struct VS_Array_Shader_5_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_5_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_5_Output VS_Array_Shader_5(VS_Array_Shader_5_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_5_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c25 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v6, r1, c18 + o.texcoord = i.texcoord * temp1 + expr18; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c24.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_6 Vertex_3_0 Has PRES True +struct VS_Array_Shader_6_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_6_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_6_Output VS_Array_Shader_6(VS_Array_Shader_6_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_6_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c27.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c25 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c26 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c27.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c24 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c25, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c28.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c26 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v2 + o.texcoord = expr23 + i.texcoord; + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c29.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c30.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c30 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_7 Vertex_3_0 Has PRES True +struct VS_Array_Shader_7_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_7_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_7_Output VS_Array_Shader_7(VS_Array_Shader_7_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_7_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c27.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c25 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c26 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c27.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c24 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c25, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c28.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c26 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v3 + o.texcoord = expr23 + i.texcoord; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c29.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c30.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c30 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_8 Vertex_3_0 Has PRES True +struct VS_Array_Shader_8_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_8_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_8_Output VS_Array_Shader_8(VS_Array_Shader_8_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_8_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c27.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c25 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c26 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c27.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c24 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c25, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c28.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c26 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v6 + o.texcoord = expr23 + i.texcoord; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c29.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c30.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c30 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_9 Vertex_3_0 Has PRES True +struct VS_Array_Shader_9_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_9_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_9_Output VS_Array_Shader_9(VS_Array_Shader_9_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_9_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c20, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c23.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c21 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // lrp r0.xy, c24.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c25 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c18 + o.texcoord1 = temp0 * temp2 + expr18; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c26.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c26 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_10 Vertex_3_0 Has PRES True +struct VS_Array_Shader_10_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_10_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_10_Output VS_Array_Shader_10(VS_Array_Shader_10_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_10_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // lrp r1.xy, c24.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c25 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c18 + o.texcoord1 = temp1 * temp2 + expr18; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_11 Vertex_3_0 Has PRES True +struct VS_Array_Shader_11_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_11_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_11_Output VS_Array_Shader_11(VS_Array_Shader_11_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_11_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // lrp r1.xy, c24.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c25 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c18 + o.texcoord1 = temp1 * temp2 + expr18; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_12 Vertex_3_0 Has PRES True +struct VS_Array_Shader_12_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_12_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_12_Output VS_Array_Shader_12(VS_Array_Shader_12_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c7.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + // mul c19.xy, c7.x, c6.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_12_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c21, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c24.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c22 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xy, c26 + temp0.xy = TexCoordTransform_0.xy; + // mad o3.xy, v2, r0, c18 + o.texcoord = i.texcoord * temp0 + expr18; + // lrp r0.xy, c25.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c19 + o.texcoord1 = temp0 * temp2 + expr19; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c28.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c28 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_13 Vertex_3_0 Has PRES True +struct VS_Array_Shader_13_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_13_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_13_Output VS_Array_Shader_13(VS_Array_Shader_13_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c7.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + // mul c19.xy, c7.x, c6.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_13_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c26 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v3, r1, c18 + o.texcoord = i.texcoord * temp1 + expr18; + // lrp r1.xy, c25.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c19 + o.texcoord1 = temp1 * temp2 + expr19; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_14 Vertex_3_0 Has PRES True +struct VS_Array_Shader_14_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_14_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_14_Output VS_Array_Shader_14(VS_Array_Shader_14_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c7.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + // mul c19.xy, c7.x, c6.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_14_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c26 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v6, r1, c18 + o.texcoord = i.texcoord * temp1 + expr18; + // lrp r1.xy, c25.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c19 + o.texcoord1 = temp1 * temp2 + expr19; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_15 Vertex_3_0 Has PRES True +struct VS_Array_Shader_15_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_15_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_15_Output VS_Array_Shader_15(VS_Array_Shader_15_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + // mul c24.xy, c7.x, c6.zw + expr24.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_15_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c26 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c27 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c26, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c29.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c27 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v2 + o.texcoord = expr23 + i.texcoord; + // lrp r0.xy, c30.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c31 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c24 + o.texcoord1 = temp0 * temp2 + expr24; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c32.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c32 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_16 Vertex_3_0 Has PRES True +struct VS_Array_Shader_16_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_16_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_16_Output VS_Array_Shader_16(VS_Array_Shader_16_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + // mul c24.xy, c7.x, c6.zw + expr24.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_16_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c26 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c27 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c26, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c29.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c27 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v3 + o.texcoord = expr23 + i.texcoord; + // lrp r1.xy, c30.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c31 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c24 + o.texcoord1 = temp1 * temp2 + expr24; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c32.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c32 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_17 Vertex_3_0 Has PRES True +struct VS_Array_Shader_17_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_17_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_17_Output VS_Array_Shader_17(VS_Array_Shader_17_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + // mul c24.xy, c7.x, c6.zw + expr24.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_17_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c26 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.x + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c27 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c26, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c29.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c27 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v6 + o.texcoord = expr23 + i.texcoord; + // lrp r1.xy, c30.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c31 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c24 + o.texcoord1 = temp1 * temp2 + expr24; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c32.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c32 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_18 Vertex_3_0 Has PRES True +struct VS_Array_Shader_18_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_18_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_18_Output VS_Array_Shader_18(VS_Array_Shader_18_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_18_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c24.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c3.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c20, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c3.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c23.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c21 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c3.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c25.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c26.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c26 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o7.xyz, r0, r1.x, c27.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_19 Vertex_3_0 Has PRES True +struct VS_Array_Shader_19_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_19_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_19_Output VS_Array_Shader_19(VS_Array_Shader_19_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_19_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, -1, 0.25, 0.5 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c24.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c3.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c3.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c25.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o7.xyz, r1, r0.y, c27.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_20 Vertex_3_0 Has PRES True +struct VS_Array_Shader_20_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_20_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_20_Output VS_Array_Shader_20(VS_Array_Shader_20_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_20_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, 1, -1, 0.25, 0.5 + // def c3, -2, 3, 0, 0 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c2 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c24.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c3.x, c3.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c20 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c21 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c3.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c25.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c2.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o7.xyz, r1, r0.y, c27.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_21 Vertex_3_0 Has PRES True +struct VS_Array_Shader_21_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_21_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_21_Output VS_Array_Shader_21(VS_Array_Shader_21_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_21_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c3.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c21, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c3.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c24.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c22 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c3.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xy, c27 + temp0.xy = TexCoordTransform_0.xy; + // mad o3.xy, v2, r0, c19 + o.texcoord = i.texcoord * temp0 + expr19; + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c26.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c28.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c28 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o7.xyz, r0, r1.x, c29.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_22 Vertex_3_0 Has PRES True +struct VS_Array_Shader_22_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_22_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_22_Output VS_Array_Shader_22(VS_Array_Shader_22_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_22_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, -1, 0.25, 0.5 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c3.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c3.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c27 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v3, r1, c19 + o.texcoord = i.texcoord * temp1 + expr19; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c26.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c29.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_23 Vertex_3_0 Has PRES True +struct VS_Array_Shader_23_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_23_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_23_Output VS_Array_Shader_23(VS_Array_Shader_23_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_23_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, 1, -1, 0.25, 0.5 + // def c3, -2, 3, 0, 0 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c2 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c3.x, c3.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c3.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c27 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v6, r1, c19 + o.texcoord = i.texcoord * temp1 + expr19; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c26.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c2.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c29.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_24 Vertex_3_0 Has PRES True +struct VS_Array_Shader_24_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_24_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_24_Output VS_Array_Shader_24(VS_Array_Shader_24_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_24_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c33, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c30.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c26 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c27 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c3.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c26, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c3.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c29.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c27 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c3.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v2 + o.texcoord = expr24 + i.texcoord; + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c31.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c32.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c32 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o7.xyz, r0, r1.x, c33.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_25 Vertex_3_0 Has PRES True +struct VS_Array_Shader_25_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_25_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_25_Output VS_Array_Shader_25(VS_Array_Shader_25_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_25_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, -1, 0.25, 0.5 + // def c33, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c30.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c26 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c27 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c26, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c3.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c29.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c27 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c3.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v3 + o.texcoord = expr24 + i.texcoord; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c31.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c32.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c32 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c33.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_26 Vertex_3_0 Has PRES True +struct VS_Array_Shader_26_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_26_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_26_Output VS_Array_Shader_26(VS_Array_Shader_26_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_26_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, 1, -1, 0.25, 0.5 + // def c3, -2, 3, 0, 0 + // def c33, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c2 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c30.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c3.x, c3.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c26 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c27 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c3.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c26, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c29.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c27 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v6 + o.texcoord = expr24 + i.texcoord; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c31.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c32.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c32 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c2.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c33.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_27 Vertex_3_0 Has PRES True +struct VS_Array_Shader_27_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_27_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_27_Output VS_Array_Shader_27(VS_Array_Shader_27_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_27_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c3.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c21, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c3.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c24.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c22 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c3.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // lrp r0.xy, c26.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c19 + o.texcoord1 = temp0 * temp2 + expr19; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c28.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c28 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o7.xyz, r0, r1.x, c29.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_28 Vertex_3_0 Has PRES True +struct VS_Array_Shader_28_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_28_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_28_Output VS_Array_Shader_28(VS_Array_Shader_28_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_28_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, -1, 0.25, 0.5 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c3.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c3.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // lrp r1.xy, c26.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c19 + o.texcoord1 = temp1 * temp2 + expr19; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o7.xyz, r1, r0.y, c29.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_29 Vertex_3_0 Has PRES True +struct VS_Array_Shader_29_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_29_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_29_Output VS_Array_Shader_29(VS_Array_Shader_29_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_29_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, 1, -1, 0.25, 0.5 + // def c3, -2, 3, 0, 0 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c2 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c3.x, c3.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c21 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c22 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c3.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // lrp r1.xy, c26.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c19 + o.texcoord1 = temp1 * temp2 + expr19; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c2.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o7.xyz, r1, r0.y, c29.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_30 Vertex_3_0 Has PRES True +struct VS_Array_Shader_30_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_30_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_30_Output VS_Array_Shader_30(VS_Array_Shader_30_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c7.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + // mul c20.xy, c7.x, c6.zw + expr20.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_30_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c31, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c26.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c24.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c22 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c23 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c24.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c3.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c21 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c22, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c3.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c25.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c23 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c3.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xy, c28 + temp0.xy = TexCoordTransform_0.xy; + // mad o3.xy, v2, r0, c19 + o.texcoord = i.texcoord * temp0 + expr19; + // lrp r0.xy, c27.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c29 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c20 + o.texcoord1 = temp0 * temp2 + expr20; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c30.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c30 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o7.xyz, r0, r1.x, c31.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_31 Vertex_3_0 Has PRES True +struct VS_Array_Shader_31_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_31_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_31_Output VS_Array_Shader_31(VS_Array_Shader_31_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c7.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + // mul c20.xy, c7.x, c6.zw + expr20.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_31_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, -1, 0.25, 0.5 + // def c31, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c26.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c24.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c22 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c23 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c24.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c21 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c22, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c3.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c25.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c23 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c3.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c28 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v3, r1, c19 + o.texcoord = i.texcoord * temp1 + expr19; + // lrp r1.xy, c27.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c29 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c20 + o.texcoord1 = temp1 * temp2 + expr20; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c30.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c30 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c31.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_32 Vertex_3_0 Has PRES True +struct VS_Array_Shader_32_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_32_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_32_Output VS_Array_Shader_32(VS_Array_Shader_32_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c7.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + // mul c20.xy, c7.x, c6.zw + expr20.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_32_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, 1, -1, 0.25, 0.5 + // def c3, -2, 3, 0, 0 + // def c31, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c2 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c26.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c3.x, c3.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c24.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c22 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c23 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c24.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c3.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c21 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c22, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c25.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c23 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c28 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v6, r1, c19 + o.texcoord = i.texcoord * temp1 + expr19; + // lrp r1.xy, c27.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c29 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c20 + o.texcoord1 = temp1 * temp2 + expr20; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c30.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c30 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c2.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c31.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_33 Vertex_3_0 Has PRES True +struct VS_Array_Shader_33_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_33_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_33_Output VS_Array_Shader_33(VS_Array_Shader_33_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + // mul c25.xy, c7.x, c6.zw + expr25.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_33_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c35, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c31.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c29.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c27 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c28 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c29.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c3.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c3.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c3.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c26 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c27, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c3.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c30.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c28 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c3.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v2 + o.texcoord = expr24 + i.texcoord; + // lrp r0.xy, c32.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c33 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c25 + o.texcoord1 = temp0 * temp2 + expr25; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o5.xy, r0, c118 + o.texcoord2 = temp0 + Cloud.CurrentOffsetUV; + // add r0.xy, r1, c34.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c34 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o7.xyz, r0, r1.x, c35.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_34 Vertex_3_0 Has PRES True +struct VS_Array_Shader_34_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_34_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_34_Output VS_Array_Shader_34(VS_Array_Shader_34_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + // mul c25.xy, c7.x, c6.zw + expr25.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_34_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, -1, 0.25, 0.5 + // def c35, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c3 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c31.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c29.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c27 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c3.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c28 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c3.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c29.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c3.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c26 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c27, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c3.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c30.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c28 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c3.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v3 + o.texcoord = expr24 + i.texcoord; + // lrp r1.xy, c32.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c33 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c25 + o.texcoord1 = temp1 * temp2 + expr25; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c34.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c34 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c35.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_35 Vertex_3_0 Has PRES True +struct VS_Array_Shader_35_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_35_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_35_Output VS_Array_Shader_35(VS_Array_Shader_35_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + // mul c25.xy, c7.x, c6.zw + expr25.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_35_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, 1, -1, 0.25, 0.5 + // def c3, -2, 3, 0, 0 + // def c35, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c2 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c31.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c3.x, c3.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c29.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mul r3.yzw, r2.w, c5.xxyz + temp3.yzw = temp2.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r3.x, c5 + temp4.xyz = temp3.xxx * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3.yzww, c27 + temp3.xyz = temp3.yzw * ColorDiffuse.xyz; + // mul r3.xyz, r5, r3 + temp3.xyz = temp5.xyz * temp3.xyz; + // mul o8.xyz, r3, c2.w + o.texcoord5 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r4, c28 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c3.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c29.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c3.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c3.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c26 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c27, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c30.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c28 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v6 + o.texcoord = expr24 + i.texcoord; + // lrp r1.xy, c32.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c33 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c25 + o.texcoord1 = temp1 * temp2 + expr25; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o5.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c34.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c34 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c2.x + o.color1.w = float1(1); + // mad o7.xyz, r1, r0.y, c35.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +VertexShader VS_Array[36] = { + compile vs_3_0 VS_Array_Shader_0(), // 81 + compile vs_3_0 VS_Array_Shader_1(), // 82 + compile vs_3_0 VS_Array_Shader_2(), // 83 + compile vs_3_0 VS_Array_Shader_3(), // 84 + compile vs_3_0 VS_Array_Shader_4(), // 85 + compile vs_3_0 VS_Array_Shader_5(), // 86 + compile vs_3_0 VS_Array_Shader_6(), // 87 + compile vs_3_0 VS_Array_Shader_7(), // 88 + compile vs_3_0 VS_Array_Shader_8(), // 89 + compile vs_3_0 VS_Array_Shader_9(), // 90 + compile vs_3_0 VS_Array_Shader_10(), // 91 + compile vs_3_0 VS_Array_Shader_11(), // 92 + compile vs_3_0 VS_Array_Shader_12(), // 93 + compile vs_3_0 VS_Array_Shader_13(), // 94 + compile vs_3_0 VS_Array_Shader_14(), // 95 + compile vs_3_0 VS_Array_Shader_15(), // 96 + compile vs_3_0 VS_Array_Shader_16(), // 97 + compile vs_3_0 VS_Array_Shader_17(), // 98 + compile vs_3_0 VS_Array_Shader_18(), // 99 + compile vs_3_0 VS_Array_Shader_19(), // 100 + compile vs_3_0 VS_Array_Shader_20(), // 101 + compile vs_3_0 VS_Array_Shader_21(), // 102 + compile vs_3_0 VS_Array_Shader_22(), // 103 + compile vs_3_0 VS_Array_Shader_23(), // 104 + compile vs_3_0 VS_Array_Shader_24(), // 105 + compile vs_3_0 VS_Array_Shader_25(), // 106 + compile vs_3_0 VS_Array_Shader_26(), // 107 + compile vs_3_0 VS_Array_Shader_27(), // 108 + compile vs_3_0 VS_Array_Shader_28(), // 109 + compile vs_3_0 VS_Array_Shader_29(), // 110 + compile vs_3_0 VS_Array_Shader_30(), // 111 + compile vs_3_0 VS_Array_Shader_31(), // 112 + compile vs_3_0 VS_Array_Shader_32(), // 113 + compile vs_3_0 VS_Array_Shader_33(), // 114 + compile vs_3_0 VS_Array_Shader_34(), // 115 + compile vs_3_0 VS_Array_Shader_35(), // 116 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v7 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 4, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v7 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, c0.y + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_Shader_6_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_6(PS_Array_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_Shader_7_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_7(PS_Array_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_Shader_8_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_8(PS_Array_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v7 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_9 Pixel_3_0 Has PRES False +struct PS_Array_Shader_9_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_9(PS_Array_Shader_9_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_10 Pixel_3_0 Has PRES False +struct PS_Array_Shader_10_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_10(PS_Array_Shader_10_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_11 Pixel_3_0 Has PRES False +struct PS_Array_Shader_11_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_11(PS_Array_Shader_11_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r2, v2, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_12 Pixel_3_0 Has PRES False +struct PS_Array_Shader_12_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_12(PS_Array_Shader_12_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_13 Pixel_3_0 Has PRES False +struct PS_Array_Shader_13_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_13(PS_Array_Shader_13_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_14 Pixel_3_0 Has PRES False +struct PS_Array_Shader_14_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_14(PS_Array_Shader_14_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v7, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_15 Pixel_3_0 Has PRES False +struct PS_Array_Shader_15_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_15(PS_Array_Shader_15_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_16 Pixel_3_0 Has PRES False +struct PS_Array_Shader_16_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_16(PS_Array_Shader_16_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_17 Pixel_3_0 Has PRES False +struct PS_Array_Shader_17_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_17(PS_Array_Shader_17_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 4, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v7, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(4, 4, 4) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_18 Pixel_3_0 Has PRES False +struct PS_Array_Shader_18_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_18(PS_Array_Shader_18_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_19 Pixel_3_0 Has PRES False +struct PS_Array_Shader_19_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_19(PS_Array_Shader_19_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_20 Pixel_3_0 Has PRES False +struct PS_Array_Shader_20_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_20(PS_Array_Shader_20_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v7, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_21 Pixel_3_0 Has PRES False +struct PS_Array_Shader_21_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_21(PS_Array_Shader_21_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_22 Pixel_3_0 Has PRES False +struct PS_Array_Shader_22_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_22(PS_Array_Shader_22_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_23 Pixel_3_0 Has PRES False +struct PS_Array_Shader_23_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_23(PS_Array_Shader_23_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 2, -1, 1 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r2, v2, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_24 Pixel_3_0 Has PRES False +struct PS_Array_Shader_24_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_24(PS_Array_Shader_24_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_25 Pixel_3_0 Has PRES False +struct PS_Array_Shader_25_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_25(PS_Array_Shader_25_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_26 Pixel_3_0 Has PRES False +struct PS_Array_Shader_26_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_26(PS_Array_Shader_26_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v7, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_27 Pixel_3_0 Has PRES False +struct PS_Array_Shader_27_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_27(PS_Array_Shader_27_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_28 Pixel_3_0 Has PRES False +struct PS_Array_Shader_28_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_28(PS_Array_Shader_28_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_29 Pixel_3_0 Has PRES False +struct PS_Array_Shader_29_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_29(PS_Array_Shader_29_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 4, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v7, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r0, c0.y + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_30 Pixel_3_0 Has PRES False +struct PS_Array_Shader_30_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_30(PS_Array_Shader_30_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_31 Pixel_3_0 Has PRES False +struct PS_Array_Shader_31_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_31(PS_Array_Shader_31_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_32 Pixel_3_0 Has PRES False +struct PS_Array_Shader_32_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_32(PS_Array_Shader_32_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v4, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v6, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v7, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v5, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_33 Pixel_3_0 Has PRES False +struct PS_Array_Shader_33_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_33(PS_Array_Shader_33_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_34 Pixel_3_0 Has PRES False +struct PS_Array_Shader_34_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_34(PS_Array_Shader_34_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_35 Pixel_3_0 Has PRES False +struct PS_Array_Shader_35_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_35(PS_Array_Shader_35_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, v5, r1, r0 + temp0.xyz = i.texcoord5.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v6, r1, r2 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r2, v2, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_36 Pixel_3_0 Has PRES False +struct PS_Array_Shader_36_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_36(PS_Array_Shader_36_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_37 Pixel_3_0 Has PRES False +struct PS_Array_Shader_37_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_37(PS_Array_Shader_37_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v7 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_38 Pixel_3_0 Has PRES False +struct PS_Array_Shader_38_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_38(PS_Array_Shader_38_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v8 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_39 Pixel_3_0 Has PRES False +struct PS_Array_Shader_39_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_39(PS_Array_Shader_39_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_40 Pixel_3_0 Has PRES False +struct PS_Array_Shader_40_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_40(PS_Array_Shader_40_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v7 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_41 Pixel_3_0 Has PRES False +struct PS_Array_Shader_41_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_41(PS_Array_Shader_41_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 4, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v8 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, c1.x + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_42 Pixel_3_0 Has PRES False +struct PS_Array_Shader_42_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_42(PS_Array_Shader_42_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_43 Pixel_3_0 Has PRES False +struct PS_Array_Shader_43_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_43(PS_Array_Shader_43_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v7 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_44 Pixel_3_0 Has PRES False +struct PS_Array_Shader_44_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_44(PS_Array_Shader_44_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v8 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_45 Pixel_3_0 Has PRES False +struct PS_Array_Shader_45_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_45(PS_Array_Shader_45_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_46 Pixel_3_0 Has PRES False +struct PS_Array_Shader_46_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_46(PS_Array_Shader_46_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v7 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_47 Pixel_3_0 Has PRES False +struct PS_Array_Shader_47_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_47(PS_Array_Shader_47_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0, v1 + temp1.xyz = temp1.xyz * temp0.xyz + i.color1.xyz; + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r2, v2, s1 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_48 Pixel_3_0 Has PRES False +struct PS_Array_Shader_48_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_48(PS_Array_Shader_48_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_49 Pixel_3_0 Has PRES False +struct PS_Array_Shader_49_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_49(PS_Array_Shader_49_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v7, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_50 Pixel_3_0 Has PRES False +struct PS_Array_Shader_50_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_50(PS_Array_Shader_50_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v8, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_51 Pixel_3_0 Has PRES False +struct PS_Array_Shader_51_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_51(PS_Array_Shader_51_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_52 Pixel_3_0 Has PRES False +struct PS_Array_Shader_52_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_52(PS_Array_Shader_52_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v7, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_53 Pixel_3_0 Has PRES False +struct PS_Array_Shader_53_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_53(PS_Array_Shader_53_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 4, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v8, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(4, 4, 4) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_54 Pixel_3_0 Has PRES False +struct PS_Array_Shader_54_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_54(PS_Array_Shader_54_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_55 Pixel_3_0 Has PRES False +struct PS_Array_Shader_55_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_55(PS_Array_Shader_55_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v7, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_56 Pixel_3_0 Has PRES False +struct PS_Array_Shader_56_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_56(PS_Array_Shader_56_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v8, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_57 Pixel_3_0 Has PRES False +struct PS_Array_Shader_57_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_57(PS_Array_Shader_57_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_58 Pixel_3_0 Has PRES False +struct PS_Array_Shader_58_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_58(PS_Array_Shader_58_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v7, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_59 Pixel_3_0 Has PRES False +struct PS_Array_Shader_59_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_59(PS_Array_Shader_59_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord6.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r2, v2, s1 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_60 Pixel_3_0 Has PRES False +struct PS_Array_Shader_60_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_60(PS_Array_Shader_60_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_61 Pixel_3_0 Has PRES False +struct PS_Array_Shader_61_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_61(PS_Array_Shader_61_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v7, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_62 Pixel_3_0 Has PRES False +struct PS_Array_Shader_62_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_62(PS_Array_Shader_62_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v8, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_63 Pixel_3_0 Has PRES False +struct PS_Array_Shader_63_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_63(PS_Array_Shader_63_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_64 Pixel_3_0 Has PRES False +struct PS_Array_Shader_64_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_64(PS_Array_Shader_64_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v7, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_65 Pixel_3_0 Has PRES False +struct PS_Array_Shader_65_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_65(PS_Array_Shader_65_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 4, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v8, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r0, c1.x + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_66 Pixel_3_0 Has PRES False +struct PS_Array_Shader_66_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_66(PS_Array_Shader_66_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_67 Pixel_3_0 Has PRES False +struct PS_Array_Shader_67_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_67(PS_Array_Shader_67_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v7, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_68 Pixel_3_0 Has PRES False +struct PS_Array_Shader_68_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_68(PS_Array_Shader_68_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xy + // dcl_texcoord4 v6.xyz + // dcl_texcoord5 v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, c11.zxzw, v6 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v6 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v6, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v6.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v4, s4 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v8, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_69 Pixel_3_0 Has PRES False +struct PS_Array_Shader_69_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_69(PS_Array_Shader_69_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord2 v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_70 Pixel_3_0 Has PRES False +struct PS_Array_Shader_70_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_70(PS_Array_Shader_70_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v6, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v7, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_71 Pixel_3_0 Has PRES False +struct PS_Array_Shader_71_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_71(PS_Array_Shader_71_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 1, 0, 0.25 + // dcl_color v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // mad r1.xyz, v7, r0, r1 + temp1.xyz = i.texcoord6.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r2, v2, s1 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[72] = { + compile ps_3_0 PS_Array_Shader_0(), // 117 + compile ps_3_0 PS_Array_Shader_1(), // 118 + compile ps_3_0 PS_Array_Shader_2(), // 119 + compile ps_3_0 PS_Array_Shader_3(), // 120 + compile ps_3_0 PS_Array_Shader_4(), // 121 + compile ps_3_0 PS_Array_Shader_5(), // 122 + compile ps_3_0 PS_Array_Shader_6(), // 123 + compile ps_3_0 PS_Array_Shader_7(), // 124 + compile ps_3_0 PS_Array_Shader_8(), // 125 + compile ps_3_0 PS_Array_Shader_9(), // 126 + compile ps_3_0 PS_Array_Shader_10(), // 127 + compile ps_3_0 PS_Array_Shader_11(), // 128 + compile ps_3_0 PS_Array_Shader_12(), // 129 + compile ps_3_0 PS_Array_Shader_13(), // 130 + compile ps_3_0 PS_Array_Shader_14(), // 131 + compile ps_3_0 PS_Array_Shader_15(), // 132 + compile ps_3_0 PS_Array_Shader_16(), // 133 + compile ps_3_0 PS_Array_Shader_17(), // 134 + compile ps_3_0 PS_Array_Shader_18(), // 135 + compile ps_3_0 PS_Array_Shader_19(), // 136 + compile ps_3_0 PS_Array_Shader_20(), // 137 + compile ps_3_0 PS_Array_Shader_21(), // 138 + compile ps_3_0 PS_Array_Shader_22(), // 139 + compile ps_3_0 PS_Array_Shader_23(), // 140 + compile ps_3_0 PS_Array_Shader_24(), // 141 + compile ps_3_0 PS_Array_Shader_25(), // 142 + compile ps_3_0 PS_Array_Shader_26(), // 143 + compile ps_3_0 PS_Array_Shader_27(), // 144 + compile ps_3_0 PS_Array_Shader_28(), // 145 + compile ps_3_0 PS_Array_Shader_29(), // 146 + compile ps_3_0 PS_Array_Shader_30(), // 147 + compile ps_3_0 PS_Array_Shader_31(), // 148 + compile ps_3_0 PS_Array_Shader_32(), // 149 + compile ps_3_0 PS_Array_Shader_33(), // 150 + compile ps_3_0 PS_Array_Shader_34(), // 151 + compile ps_3_0 PS_Array_Shader_35(), // 152 + compile ps_3_0 PS_Array_Shader_36(), // 153 + compile ps_3_0 PS_Array_Shader_37(), // 154 + compile ps_3_0 PS_Array_Shader_38(), // 155 + compile ps_3_0 PS_Array_Shader_39(), // 156 + compile ps_3_0 PS_Array_Shader_40(), // 157 + compile ps_3_0 PS_Array_Shader_41(), // 158 + compile ps_3_0 PS_Array_Shader_42(), // 159 + compile ps_3_0 PS_Array_Shader_43(), // 160 + compile ps_3_0 PS_Array_Shader_44(), // 161 + compile ps_3_0 PS_Array_Shader_45(), // 162 + compile ps_3_0 PS_Array_Shader_46(), // 163 + compile ps_3_0 PS_Array_Shader_47(), // 164 + compile ps_3_0 PS_Array_Shader_48(), // 165 + compile ps_3_0 PS_Array_Shader_49(), // 166 + compile ps_3_0 PS_Array_Shader_50(), // 167 + compile ps_3_0 PS_Array_Shader_51(), // 168 + compile ps_3_0 PS_Array_Shader_52(), // 169 + compile ps_3_0 PS_Array_Shader_53(), // 170 + compile ps_3_0 PS_Array_Shader_54(), // 171 + compile ps_3_0 PS_Array_Shader_55(), // 172 + compile ps_3_0 PS_Array_Shader_56(), // 173 + compile ps_3_0 PS_Array_Shader_57(), // 174 + compile ps_3_0 PS_Array_Shader_58(), // 175 + compile ps_3_0 PS_Array_Shader_59(), // 176 + compile ps_3_0 PS_Array_Shader_60(), // 177 + compile ps_3_0 PS_Array_Shader_61(), // 178 + compile ps_3_0 PS_Array_Shader_62(), // 179 + compile ps_3_0 PS_Array_Shader_63(), // 180 + compile ps_3_0 PS_Array_Shader_64(), // 181 + compile ps_3_0 PS_Array_Shader_65(), // 182 + compile ps_3_0 PS_Array_Shader_66(), // 183 + compile ps_3_0 PS_Array_Shader_67(), // 184 + compile ps_3_0 PS_Array_Shader_68(), // 185 + compile ps_3_0 PS_Array_Shader_69(), // 186 + compile ps_3_0 PS_Array_Shader_70(), // 187 + compile ps_3_0 PS_Array_Shader_71(), // 188 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c17 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c15 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c16, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.x + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c16.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c19.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c20.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c21.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c21 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c17 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c15 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c16, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c16.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.w + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c17 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.w + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c19.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c20.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c21.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c21 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c3.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c17 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c15 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c16, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r1.y, c5.xxyz + temp0.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c16.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.z, c5.xxyz + temp0.yzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c19.x + temp1.x = Opacity.x; + // mul r0.y, r1.x, c1.x + temp0.y = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r2.xxyw, -v7.xxyw + temp0.yz = temp2.xy + -i.texcoord1.xy; + // mad oT1.xy, c20.x, r0.yzzw, v7 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r2.z, c117.xzww + temp0.yz = temp2.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r2.xxyw, c117.xxyw, -r0 + temp0.yz = temp2.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r2.xxyw, c21.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c21 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c3.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_3 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_3_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_3_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_3_Output VS_M_Array_Shader_3(VS_M_Array_Shader_3_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_3_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.x + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c20.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c21.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c23.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v2, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_4 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_4_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_4_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_4_Output VS_M_Array_Shader_4(VS_M_Array_Shader_4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_4_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c17.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.w + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.w + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c20.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c21.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c23.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c23 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c3.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v3, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_5 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_5_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_5_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_5_Output VS_M_Array_Shader_5(VS_M_Array_Shader_5_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_5_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r1.y, c5.xxyz + temp0.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.z, c5.xxyz + temp0.yzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c20.x + temp1.x = Opacity.x; + // mul r0.y, r1.x, c1.x + temp0.y = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r2.xxyw, -v7.xxyw + temp0.yz = temp2.xy + -i.texcoord1.xy; + // mad oT1.xy, c21.x, r0.yzzw, v7 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r2.z, c117.xzww + temp0.yz = temp2.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r2.xxyw, c117.xxyw, -r0 + temp0.yz = temp2.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r2.xxyw, c23.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c3.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v6, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_6 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_6_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_6_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_6_Output VS_M_Array_Shader_6(VS_M_Array_Shader_6_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_6_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c23 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c21 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c22, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c23.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.x + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c22.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c25.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c26.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c27.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c27 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v2, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_7 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_7_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_7_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_7_Output VS_M_Array_Shader_7(VS_M_Array_Shader_7_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_7_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c23 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c21 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c22, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c22.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.w + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c23 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.w + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c25.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c26.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c27.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c27 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c3.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v3, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_8 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_8_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_8_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_8_Output VS_M_Array_Shader_8(VS_M_Array_Shader_8_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_8_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, 1, -1, 0, 0.5 + // def c2, -2, 3, 0, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c23 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c0.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c0.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c21 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c22, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c0.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c0.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r1.y, c5.xxyz + temp0.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c22.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c0.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.z, c5.xxyz + temp0.yzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c23.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c0.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c25.x + temp1.x = Opacity.x; + // mul r0.y, r1.x, c1.x + temp0.y = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r2.xxyw, -v7.xxyw + temp0.yz = temp2.xy + -i.texcoord1.xy; + // mad oT1.xy, c26.x, r0.yzzw, v7 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r2.z, c117.xzww + temp0.yz = temp2.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r2.xxyw, c117.xxyw, -r0 + temp0.yz = temp2.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r2.xxyw, c27.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c27 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c3.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v6, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_9 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_9_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_9_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_9_Output VS_M_Array_Shader_9(VS_M_Array_Shader_9_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_9_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.x + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c20.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c21.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c22 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c15 + o.texcoord1 = temp0.yzzw * temp2 + expr15; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c23.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_10 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_10_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_10_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_10_Output VS_M_Array_Shader_10(VS_M_Array_Shader_10_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_10_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c17.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.w + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.w + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c20.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c21.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c22 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c15 + o.texcoord1 = temp1 * temp2 + expr15; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c23.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c23 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c3.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_11 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_11_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_11_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_11_Output VS_M_Array_Shader_11(VS_M_Array_Shader_11_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_11_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r1.y, c5.xxyz + temp0.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.z, c5.xxyz + temp0.yzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c20.x + temp1.x = Opacity.x; + // mul r0.y, r1.x, c1.x + temp0.y = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c21.x, r2.xxyw, v7.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp2.xy, UseWorldCords.xx); + // mov r1.xy, c22 + temp1.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r1, c15 + o.texcoord1 = temp0.yzzw * temp1 + expr15; + // mul r0.yz, r2.z, c117.xzww + temp0.yz = temp2.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r2.xxyw, c117.xxyw, -r0 + temp0.yz = temp2.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r2.xxyw, c23.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c3.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_12 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_12_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_12_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_12_Output VS_M_Array_Shader_12(VS_M_Array_Shader_12_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c6.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + // mul c16.xy, c6.x, c5.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_12_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c19.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.x + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c21.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c22.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c16 + o.texcoord1 = temp0.yzzw * temp2 + expr16; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c25.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c25 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c23 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v2, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_13 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_13_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_13_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_13_Output VS_M_Array_Shader_13(VS_M_Array_Shader_13_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c6.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + // mul c16.xy, c6.x, c5.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_13_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c18.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.w + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c19 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.w + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c21.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c22.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c16 + o.texcoord1 = temp1 * temp2 + expr16; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c3.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c23 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v3, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_14 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_14_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_14_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_14_Output VS_M_Array_Shader_14(VS_M_Array_Shader_14_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c6.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + // mul c16.xy, c6.x, c5.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_14_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r1.y, c5.xxyz + temp0.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.z, c5.xxyz + temp0.yzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c19.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c21.x + temp1.x = Opacity.x; + // mul r0.y, r1.x, c1.x + temp0.y = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c22.x, r2.xxyw, v7.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp2.xy, UseWorldCords.xx); + // mov r1.xy, c24 + temp1.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r1, c16 + o.texcoord1 = temp0.yzzw * temp1 + expr16; + // mul r0.yz, r2.z, c117.xzww + temp0.yz = temp2.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r2.xxyw, c117.xxyw, -r0 + temp0.yz = temp2.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r2.xxyw, c25.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c25 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c3.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c23 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v6, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_15 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_15_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_15_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_15_Output VS_M_Array_Shader_15(VS_M_Array_Shader_15_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + // mul c21.xy, c6.x, c5.zw + expr21.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_15_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c24.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.x + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c23.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c26.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c27.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c28 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c21 + o.texcoord1 = temp0.yzzw * temp2 + expr21; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c29.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c29 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v2, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_16 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_16_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_16_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_16_Output VS_M_Array_Shader_16(VS_M_Array_Shader_16_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + // mul c21.xy, c6.x, c5.zw + expr21.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_16_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c23.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.w + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c24 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.w + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c26.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c27.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c28 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c21 + o.texcoord1 = temp1 * temp2 + expr21; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c29.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c29 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c3.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v3, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_17 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_17_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_17_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_17_Output VS_M_Array_Shader_17(VS_M_Array_Shader_17_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + // mul c21.xy, c6.x, c5.zw + expr21.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_17_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, 1, -1, 0, 0.5 + // def c2, -2, 3, 0, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c0.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c0.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c0.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c0.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r1.y, c5.xxyz + temp0.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c23.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c0.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.z, c5.xxyz + temp0.yzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c24.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c0.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c26.x + temp1.x = Opacity.x; + // mul r0.y, r1.x, c1.x + temp0.y = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c27.x, r2.xxyw, v7.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp2.xy, UseWorldCords.xx); + // mov r1.xy, c28 + temp1.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r1, c21 + o.texcoord1 = temp0.yzzw * temp1 + expr21; + // mul r0.yz, r2.z, c117.xzww + temp0.yz = temp2.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r2.xxyw, c117.xxyw, -r0 + temp0.yz = temp2.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r2.xxyw, c29.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c29 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c3.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v6, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_18 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_18_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_18_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_18_Output VS_M_Array_Shader_18(VS_M_Array_Shader_18_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c4.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_18_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c24, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c3.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c3.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c12.x + temp3.w = temp3.w * expr12.x; + // max r3.w, r3.w, c3.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c3.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c2.x, c2.y + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mul r4.w, r3.w, v4.w + temp4.w = temp3.w * i.color.w; + // mov r5.w, v4.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v4 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c21.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r3.w, r4 + temp5.xyz = temp3.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c3.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c3.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c3.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c20.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c22.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c23.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c24.xxyw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_19 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_19_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_19_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_19_Output VS_M_Array_Shader_19(VS_M_Array_Shader_19_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c4.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_19_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c24, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c3.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c3.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c21.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c17.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.z + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c20.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c22.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c23.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c23 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c24.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_20 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_20_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_20_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_20_Output VS_M_Array_Shader_20(VS_M_Array_Shader_20_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c4.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_20_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c24, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c3.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c3.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c3.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c3.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c21.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyz, r2.y, c5 + temp1.xyz = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c17 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.z, c5 + temp1.xyz = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c20.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c22.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c23.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c23 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c24.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_21 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_21_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_21_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_21_Output VS_M_Array_Shader_21(VS_M_Array_Shader_21_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_21_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c26, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c3.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c3.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c12.x + temp3.w = temp3.w * expr12.x; + // max r3.w, r3.w, c3.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c3.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c2.x, c2.y + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mul r4.w, r3.w, v4.w + temp4.w = temp3.w * i.color.w; + // mov r5.w, v4.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v4 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r3.w, r4 + temp5.xyz = temp3.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c3.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c19.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c3.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c3.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c21.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c23.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c25.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c25 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c26.xxyw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c24 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v2, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_22 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_22_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_22_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_22_Output VS_M_Array_Shader_22(VS_M_Array_Shader_22_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_22_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c26, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c3.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c3.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c18.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.z + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c19 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c21.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c23.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c26.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c24 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v3, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_23 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_23_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_23_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_23_Output VS_M_Array_Shader_23(VS_M_Array_Shader_23_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_23_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c26, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c3.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c3.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c3.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c3.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyz, r2.y, c5 + temp1.xyz = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.z, c5 + temp1.xyz = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c19 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c21.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c23.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c26.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c24 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v6, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_24 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_24_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_24_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_24_Output VS_M_Array_Shader_24(VS_M_Array_Shader_24_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_24_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c2, 1, 0, 0.25, 0.5 + // def c3, -2, 3, 0, 0 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c2.xxxy, c2.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c2.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c12.x + temp3.w = temp3.w * expr12.x; + // max r3.w, r3.w, c2.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c2.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c3.x, c3.y + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mul r4.w, r3.w, v4.w + temp4.w = temp3.w * i.color.w; + // mov r5.w, v4.w + temp5.w = i.color.w; + // mov r6.xz, c2 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v4 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c27.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r3.w, r4 + temp5.xyz = temp3.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c24.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c23.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c26.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c28.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c29.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c29 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c30.xxyw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v2, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_25 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_25_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_25_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_25_Output VS_M_Array_Shader_25(VS_M_Array_Shader_25_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_25_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c3.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c3.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c27.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c23.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.z + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c24 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c26.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c28.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c29.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c29 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c30.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v3, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_26 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_26_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_26_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_26_Output VS_M_Array_Shader_26(VS_M_Array_Shader_26_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_26_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, 1, -1, 0.25, 0 + // def c3, -2, 3, 0.5, 0 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c2.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c3.x, c3.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c2 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c27.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c3.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyz, r2.y, c5 + temp1.xyz = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c23 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c3.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.z, c5 + temp1.xyz = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c24 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c3.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c26.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c28.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c29.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c29 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c30.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v6, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_27 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_27_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_27_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_27_Output VS_M_Array_Shader_27(VS_M_Array_Shader_27_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_27_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c26, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c3.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c3.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c12.x + temp3.w = temp3.w * expr12.x; + // max r3.w, r3.w, c3.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c3.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c2.x, c2.y + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mul r4.w, r3.w, v4.w + temp4.w = temp3.w * i.color.w; + // mov r5.w, v4.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v4 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r3.w, r4 + temp5.xyz = temp3.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c3.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c19.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c3.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c3.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c21.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c23.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c16 + o.texcoord1 = temp0.yzzw * temp2 + expr16; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c25.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c25 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c26.xxyw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_28 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_28_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_28_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_28_Output VS_M_Array_Shader_28(VS_M_Array_Shader_28_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_28_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c26, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c3.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c3.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c18.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.z + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c19 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c21.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c23.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c16 + o.texcoord1 = temp1 * temp2 + expr16; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c26.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_29 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_29_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_29_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_29_Output VS_M_Array_Shader_29(VS_M_Array_Shader_29_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_29_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c26, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c3.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c3.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c3.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c3.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyz, r2.y, c5 + temp1.xyz = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.z, c5 + temp1.xyz = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c19 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c21.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c23.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c16 + o.texcoord1 = temp1 * temp2 + expr16; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c26.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_30 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_30_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_30_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_30_Output VS_M_Array_Shader_30(VS_M_Array_Shader_30_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c6.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + // mul c17.xy, c6.x, c5.zw + expr17.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_30_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c2, -2, 3, 0, 0 + // def c3, 1, 0, 0.25, 0.5 + // def c28, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c3.xxxy, c3.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c3.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c3.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c20 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c18 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c19, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c12.x + temp3.w = temp3.w * expr12.x; + // max r3.w, r3.w, c3.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c3.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c2.x, c2.y + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mul r4.w, r3.w, v4.w + temp4.w = temp3.w * i.color.w; + // mov r5.w, v4.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v4 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c23.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r3.w, r4 + temp5.xyz = temp3.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c3.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c20.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c3.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c19.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c3.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c22.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c24.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c26 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c17 + o.texcoord1 = temp0.yzzw * temp2 + expr17; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c27.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c27 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c28.xxyw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c25 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v2, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_31 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_31_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_31_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_31_Output VS_M_Array_Shader_31(VS_M_Array_Shader_31_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c6.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + // mul c17.xy, c6.x, c5.zw + expr17.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_31_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c28, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c20 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c3.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c3.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c18 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c19, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c23.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c19.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.z + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c20 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c22.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c24.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c26 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c17 + o.texcoord1 = temp1 * temp2 + expr17; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c27.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c27 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c28.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c25 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v3, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_32 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_32_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_32_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_32_Output VS_M_Array_Shader_32(VS_M_Array_Shader_32_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c6.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + // mul c17.xy, c6.x, c5.zw + expr17.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_32_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c28, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c3.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c3.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c20 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c3.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c3.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c18 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c19, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c23.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyz, r2.y, c5 + temp1.xyz = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c19 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.z, c5 + temp1.xyz = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c20 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c22.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c24.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c26 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c17 + o.texcoord1 = temp1 * temp2 + expr17; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c27.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c27 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c28.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c25 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v6, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_33 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_33_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_33_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_33_Output VS_M_Array_Shader_33(VS_M_Array_Shader_33_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 12 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + // mul c22.xy, c6.x, c5.zw + expr22.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_33_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c2, 1, 0, 0.25, 0.5 + // def c3, -2, 3, 0, 0 + // def c32, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c2.xxxy, c2.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c2.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c25 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c23 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c24, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c12.x + temp3.w = temp3.w * expr12.x; + // max r3.w, r3.w, c2.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c2.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c3.x, c3.y + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mul r4.w, r3.w, v4.w + temp4.w = temp3.w * i.color.w; + // mov r5.w, v4.w + temp5.w = i.color.w; + // mov r6.xz, c2 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v4 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c28.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r3.w, r4 + temp5.xyz = temp3.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c25.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT6.xyz, r0.yzww, c2.w + o.texcoord6 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c24.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c27.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r0.y + o.color.w = temp6.w * temp0.y; + // lrp r0.yz, c29.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c30 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c22 + o.texcoord1 = temp0.yzzw * temp2 + expr22; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2 = temp0.yzzw + Cloud.CurrentOffsetUV; + // add r0.yz, r1.xxyw, c31.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c31 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c32.xxyw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v2, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_34 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_34_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_34_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_34_Output VS_M_Array_Shader_34(VS_M_Array_Shader_34_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 12 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + // mul c22.xy, c6.x, c5.zw + expr22.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_34_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c3, 1, -1, 0.25, 0 + // def c32, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c25 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c3.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c3.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c23 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c24, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c3 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c28.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c24.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r6.xyzz, r1 + temp1.xyw = temp6.xyz * temp1.xyw; + // mul oT5.xyz, r1.xyww, c2.z + o.texcoord5 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c25 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c2.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c27.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c29.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c30 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c22 + o.texcoord1 = temp1 * temp2 + expr22; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c31.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c31 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c32.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v3, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_35 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_35_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_35_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_35_Output VS_M_Array_Shader_35(VS_M_Array_Shader_35_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 12 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + // mul c22.xy, c6.x, c5.zw + expr22.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_35_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, 1, -1, 0.25, 0 + // def c3, -2, 3, 0.5, 0 + // def c32, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c25 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c2.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c3.x, c3.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c23 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c24, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c2 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c28.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c3.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyz, r2.y, c5 + temp1.xyz = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c24 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c3.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.z, c5 + temp1.xyz = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c25 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT6.xyz, r1, c3.z + o.texcoord6 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.x, c27.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul oD0.w, r6.w, r1.x + o.color.w = temp6.w * temp1.x; + // lrp r1.xy, c29.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c30 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c22 + o.texcoord1 = temp1 * temp2 + expr22; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2 = temp1 + Cloud.CurrentOffsetUV; + // add r1.xy, r0, c31.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c31 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c32.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v6, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // + + return o; +} + +VertexShader VS_M_Array[36] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 192 + compile vs_2_0 VS_M_Array_Shader_1(), // 193 + compile vs_2_0 VS_M_Array_Shader_2(), // 194 + compile vs_2_0 VS_M_Array_Shader_3(), // 195 + compile vs_2_0 VS_M_Array_Shader_4(), // 196 + compile vs_2_0 VS_M_Array_Shader_5(), // 197 + compile vs_2_0 VS_M_Array_Shader_6(), // 198 + compile vs_2_0 VS_M_Array_Shader_7(), // 199 + compile vs_2_0 VS_M_Array_Shader_8(), // 200 + compile vs_2_0 VS_M_Array_Shader_9(), // 201 + compile vs_2_0 VS_M_Array_Shader_10(), // 202 + compile vs_2_0 VS_M_Array_Shader_11(), // 203 + compile vs_2_0 VS_M_Array_Shader_12(), // 204 + compile vs_2_0 VS_M_Array_Shader_13(), // 205 + compile vs_2_0 VS_M_Array_Shader_14(), // 206 + compile vs_2_0 VS_M_Array_Shader_15(), // 207 + compile vs_2_0 VS_M_Array_Shader_16(), // 208 + compile vs_2_0 VS_M_Array_Shader_17(), // 209 + compile vs_2_0 VS_M_Array_Shader_18(), // 210 + compile vs_2_0 VS_M_Array_Shader_19(), // 211 + compile vs_2_0 VS_M_Array_Shader_20(), // 212 + compile vs_2_0 VS_M_Array_Shader_21(), // 213 + compile vs_2_0 VS_M_Array_Shader_22(), // 214 + compile vs_2_0 VS_M_Array_Shader_23(), // 215 + compile vs_2_0 VS_M_Array_Shader_24(), // 216 + compile vs_2_0 VS_M_Array_Shader_25(), // 217 + compile vs_2_0 VS_M_Array_Shader_26(), // 218 + compile vs_2_0 VS_M_Array_Shader_27(), // 219 + compile vs_2_0 VS_M_Array_Shader_28(), // 220 + compile vs_2_0 VS_M_Array_Shader_29(), // 221 + compile vs_2_0 VS_M_Array_Shader_30(), // 222 + compile vs_2_0 VS_M_Array_Shader_31(), // 223 + compile vs_2_0 VS_M_Array_Shader_32(), // 224 + compile vs_2_0 VS_M_Array_Shader_33(), // 225 + compile vs_2_0 VS_M_Array_Shader_34(), // 226 + compile vs_2_0 VS_M_Array_Shader_35(), // 227 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // dcl v0 + // dcl v1.xyz + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t6 + temp3.xyz = i.texcoord6.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, t6 + temp4.xyz = i.texcoord6.xyz; + // mad r0.xyz, r4, r0, v1 + temp0.xyz = temp4.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, t6 + temp5.xyz = i.texcoord6.xyz; + // mad r0.xyz, r5, r0, v1 + temp0.xyz = temp5.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // dcl v0 + // dcl v1.xyz + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t6 + temp3.xyz = i.texcoord6.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, t6 + temp4.xyz = i.texcoord6.xyz; + // mad r0.xyz, r4, r0, v1 + temp0.xyz = temp4.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // def c0, 4, 0, 0, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, t6 + temp5.xyz = i.texcoord6.xyz; + // mad r0.xyz, r5, r0, v1 + temp0.xyz = temp5.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_6 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_6_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_6(PS_M_Array_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // dcl v0 + // dcl v1.xyz + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t6 + temp3.xyz = i.texcoord6.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_7 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_7_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_7(PS_M_Array_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, t6 + temp4.xyz = i.texcoord6.xyz; + // mad r0.xyz, r4, r0, v1 + temp0.xyz = temp4.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_8 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_8_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_8(PS_M_Array_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t0, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, t6 + temp5.xyz = i.texcoord6.xyz; + // mad r0.xyz, r5, r0, v1 + temp0.xyz = temp5.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mad r1.xyz, r0, -r2, r1 + temp1.xyz = temp0.xyz * -temp2.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r2, r0 + temp0 = temp2 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_9 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_9_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_9(PS_M_Array_Shader_9_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // dcl v0 + // dcl v1.xyz + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t6 + temp3.xyz = i.texcoord6.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_10 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_10_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_10(PS_M_Array_Shader_10_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, t6 + temp4.xyz = i.texcoord6.xyz; + // mad r0.xyz, r4, r0, v1 + temp0.xyz = temp4.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_11 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_11_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_11(PS_M_Array_Shader_11_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.w, v0.w + temp3.w = i.color.w; + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r3.xyz, t5, r1, r4 + temp3.xyz = i.texcoord5.xyz * temp1.xyz + temp4.xyz; + // mov r4.xyz, t6 + temp4.xyz = i.texcoord6.xyz; + // mad r1.xyz, r4, r1, v1 + temp1.xyz = temp4.xyz * temp1.xyz + i.color1.xyz; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mad r1.xyz, r1, r0.w, r0 + temp1.xyz = temp1.xyz * temp0.www + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_12 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_12_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_12(PS_M_Array_Shader_12_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r3 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_13 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_13_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_13(PS_M_Array_Shader_13_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r4 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp4.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_14 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_14_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_14(PS_M_Array_Shader_14_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, v1 + temp5.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r5 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp5.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_15 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_15_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_15(PS_M_Array_Shader_15_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r3 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_16 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_16_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_16(PS_M_Array_Shader_16_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r4 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp4.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_17 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_17_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_17(PS_M_Array_Shader_17_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // def c0, 4, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, v1 + temp5.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r5 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp5.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(4, 4, 4) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_18 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_18_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_18(PS_M_Array_Shader_18_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r3 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_19 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_19_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_19(PS_M_Array_Shader_19_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r4 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp4.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_20 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_20_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_20(PS_M_Array_Shader_20_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t0, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, v1 + temp5.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r5 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp5.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mad r1.xyz, r0, -r2, r1 + temp1.xyz = temp0.xyz * -temp2.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r2, r0 + temp0 = temp2 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_21 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_21_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_21(PS_M_Array_Shader_21_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r3 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_22 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_22_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_22(PS_M_Array_Shader_22_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r4 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp4.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_23 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_23_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_23(PS_M_Array_Shader_23_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.w, v0.w + temp3.w = i.color.w; + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r3.xyz, t5, r1, r4 + temp3.xyz = i.texcoord5.xyz * temp1.xyz + temp4.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r1.xyz, t6, r1, r4 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp4.xyz; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mad r1.xyz, r1, r0.w, r0 + temp1.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_24 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_24_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_24(PS_M_Array_Shader_24_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r3 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_25 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_25_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_25(PS_M_Array_Shader_25_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r4 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp4.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_26 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_26_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_26(PS_M_Array_Shader_26_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, v1 + temp5.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r5 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp5.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_27 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_27_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_27(PS_M_Array_Shader_27_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r3 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_28 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_28_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_28(PS_M_Array_Shader_28_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r4 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp4.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_29 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_29_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_29(PS_M_Array_Shader_29_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // def c0, 4, 0, 0, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, v1 + temp5.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r5 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp5.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_30 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_30_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_30(PS_M_Array_Shader_30_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r3 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_31 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_31_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_31(PS_M_Array_Shader_31_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r4 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp4.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_32 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_32_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_32(PS_M_Array_Shader_32_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5; + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t2, s3 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t0, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, t3, s2 + temp3 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r4.xyz, t5, r0, r4 + temp4.xyz = i.texcoord5.xyz * temp0.xyz + temp4.xyz; + // mov r5.xyz, v1 + temp5.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r5 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp5.xyz; + // add r0.xyz, r4, r0 + temp0.xyz = temp4.xyz + temp0.xyz; + // mad r1.xyz, r0, -r2, r1 + temp1.xyz = temp0.xyz * -temp2.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r2, r0 + temp0 = temp2 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_33 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_33_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_33(PS_M_Array_Shader_33_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t3, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r2.xyz, t5, r0, r2 + temp2.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r3 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_34 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_34_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_34(PS_M_Array_Shader_34_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r3.xyz, t5, r0, r3 + temp3.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r4 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp4.xyz; + // add r0.xyz, r3, r0 + temp0.xyz = temp3.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_35 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_35_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_35(PS_M_Array_Shader_35_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t2, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r2, t3, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.w, v0.w + temp3.w = i.color.w; + // mov r4.xyz, v0 + temp4.xyz = i.color.xyz; + // mad r3.xyz, t5, r1, r4 + temp3.xyz = i.texcoord5.xyz * temp1.xyz + temp4.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // mad r1.xyz, t6, r1, r4 + temp1.xyz = i.texcoord6.xyz * temp1.xyz + temp4.xyz; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mad r1.xyz, r1, r0.w, r0 + temp1.xyz = temp1.xyz * temp0.www + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_36 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_36_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_36(PS_M_Array_Shader_36_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_37 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_37_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_37(PS_M_Array_Shader_37_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_38 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_38_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_38(PS_M_Array_Shader_38_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t1, s2 + temp6 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mul r1.xyz, r6, r0 + temp1.xyz = temp6.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_39 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_39_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_39(PS_M_Array_Shader_39_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_40 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_40_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_40(PS_M_Array_Shader_40_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_41 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_41_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_41(PS_M_Array_Shader_41_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, 4 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t1, s2 + temp6 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mul r1.xyz, r6, r0 + temp1.xyz = temp6.xyz * temp0.xyz; + // mul r1.xyz, r1, c0.w + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_42 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_42_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_42(PS_M_Array_Shader_42_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_43 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_43_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_43(PS_M_Array_Shader_43_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_44 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_44_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_44(PS_M_Array_Shader_44_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r1.xyz, r0, -r6, r5 + temp1.xyz = temp0.xyz * -temp6.xyz + temp5.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_45 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_45_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_45(PS_M_Array_Shader_45_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_46 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_46_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_46(PS_M_Array_Shader_46_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_47 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_47_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_47(PS_M_Array_Shader_47_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0, v1 + temp1.xyz = temp1.xyz * temp0.xyz + i.color1.xyz; + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r1, r0.w, r0 + temp1.xyz = temp1.xyz * temp0.www + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_48 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_48_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_48(PS_M_Array_Shader_48_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r0.xyz, r0, -c0.w, -c0.x + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.x + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_49 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_49_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_49(PS_M_Array_Shader_49_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_50 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_50_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_50(PS_M_Array_Shader_50_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t1, s2 + temp6 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mul r1.xyz, r6, r0 + temp1.xyz = temp6.xyz * temp0.xyz; + // mad r1.xyz, r1, -c0.w, -c0.x + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_51 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_51_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_51(PS_M_Array_Shader_51_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r0.xyz, r0, -c0.w, -c0.x + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.x + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_52 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_52_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_52(PS_M_Array_Shader_52_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_53 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_53_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_53(PS_M_Array_Shader_53_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, -4 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t1, s2 + temp6 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mul r1.xyz, r6, r0 + temp1.xyz = temp6.xyz * temp0.xyz; + // mad r1.xyz, r1, -c0.w, -c0.x + temp1.xyz = temp1.xyz * float3(4, 4, 4) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_54 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_54_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_54(PS_M_Array_Shader_54_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r0.xyz, r0, -c0.w, -c0.x + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.x + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_55 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_55_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_55(PS_M_Array_Shader_55_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_56 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_56_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_56(PS_M_Array_Shader_56_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r1.xyz, r0, -r6, r5 + temp1.xyz = temp0.xyz * -temp6.xyz + temp5.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // mad r1.xyz, r1, -c0.w, -c0.x + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_57 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_57_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_57(PS_M_Array_Shader_57_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r0.xyz, r0, -c0.w, -c0.x + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.x + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_58 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_58_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_58(PS_M_Array_Shader_58_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_59 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_59_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_59(PS_M_Array_Shader_59_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // mad r1.xyz, t6, r0, r1 + temp1.xyz = i.texcoord6.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r1, r0.w, r0 + temp1.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mad r1.xyz, r1, -c0.w, -c0.x + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_60 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_60_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_60(PS_M_Array_Shader_60_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_61 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_61_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_61(PS_M_Array_Shader_61_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_62 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_62_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_62(PS_M_Array_Shader_62_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t1, s2 + temp6 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mul r1.xyz, r6, r0 + temp1.xyz = temp6.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_63 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_63_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_63(PS_M_Array_Shader_63_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_64 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_64_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_64(PS_M_Array_Shader_64_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_65 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_65_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_65(PS_M_Array_Shader_65_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, 4 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t1, s2 + temp6 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mul r1.xyz, r6, r0 + temp1.xyz = temp6.xyz * temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r1.xyz, r1, c0.w + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_66 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_66_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_66(PS_M_Array_Shader_66_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_67 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_67_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_67(PS_M_Array_Shader_67_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_68 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_68_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_68(PS_M_Array_Shader_68_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s4 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r7, t3, s3 + temp7 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mad r1.xyz, r0, -r6, r5 + temp1.xyz = temp0.xyz * -temp6.xyz + temp5.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r7, r1 + temp0.xyz = temp7.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_69 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_69_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_69(PS_M_Array_Shader_69_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s2 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t3, s1 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_70 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_70_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_70(PS_M_Array_Shader_70_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r0, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t6, r0, r2 + temp0.xyz = i.texcoord6.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_71 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_71_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_71(PS_M_Array_Shader_71_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t2, s3 + temp4 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s2 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mul r0.xyz, r4, r4.w + temp0.xyz = temp4.xyz * temp4.www; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // mad r1.xyz, t6, r0, r1 + temp1.xyz = i.texcoord6.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r1, r0.w, r0 + temp1.xyz = temp1.xyz * temp0.www + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[72] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 228 + compile ps_2_0 PS_M_Array_Shader_1(), // 229 + compile ps_2_0 PS_M_Array_Shader_2(), // 230 + compile ps_2_0 PS_M_Array_Shader_3(), // 231 + compile ps_2_0 PS_M_Array_Shader_4(), // 232 + compile ps_2_0 PS_M_Array_Shader_5(), // 233 + compile ps_2_0 PS_M_Array_Shader_6(), // 234 + compile ps_2_0 PS_M_Array_Shader_7(), // 235 + compile ps_2_0 PS_M_Array_Shader_8(), // 236 + compile ps_2_0 PS_M_Array_Shader_9(), // 237 + compile ps_2_0 PS_M_Array_Shader_10(), // 238 + compile ps_2_0 PS_M_Array_Shader_11(), // 239 + compile ps_2_0 PS_M_Array_Shader_12(), // 240 + compile ps_2_0 PS_M_Array_Shader_13(), // 241 + compile ps_2_0 PS_M_Array_Shader_14(), // 242 + compile ps_2_0 PS_M_Array_Shader_15(), // 243 + compile ps_2_0 PS_M_Array_Shader_16(), // 244 + compile ps_2_0 PS_M_Array_Shader_17(), // 245 + compile ps_2_0 PS_M_Array_Shader_18(), // 246 + compile ps_2_0 PS_M_Array_Shader_19(), // 247 + compile ps_2_0 PS_M_Array_Shader_20(), // 248 + compile ps_2_0 PS_M_Array_Shader_21(), // 249 + compile ps_2_0 PS_M_Array_Shader_22(), // 250 + compile ps_2_0 PS_M_Array_Shader_23(), // 251 + compile ps_2_0 PS_M_Array_Shader_24(), // 252 + compile ps_2_0 PS_M_Array_Shader_25(), // 253 + compile ps_2_0 PS_M_Array_Shader_26(), // 254 + compile ps_2_0 PS_M_Array_Shader_27(), // 255 + compile ps_2_0 PS_M_Array_Shader_28(), // 256 + compile ps_2_0 PS_M_Array_Shader_29(), // 257 + compile ps_2_0 PS_M_Array_Shader_30(), // 258 + compile ps_2_0 PS_M_Array_Shader_31(), // 259 + compile ps_2_0 PS_M_Array_Shader_32(), // 260 + compile ps_2_0 PS_M_Array_Shader_33(), // 261 + compile ps_2_0 PS_M_Array_Shader_34(), // 262 + compile ps_2_0 PS_M_Array_Shader_35(), // 263 + compile ps_2_0 PS_M_Array_Shader_36(), // 264 + compile ps_2_0 PS_M_Array_Shader_37(), // 265 + compile ps_2_0 PS_M_Array_Shader_38(), // 266 + compile ps_2_0 PS_M_Array_Shader_39(), // 267 + compile ps_2_0 PS_M_Array_Shader_40(), // 268 + compile ps_2_0 PS_M_Array_Shader_41(), // 269 + compile ps_2_0 PS_M_Array_Shader_42(), // 270 + compile ps_2_0 PS_M_Array_Shader_43(), // 271 + compile ps_2_0 PS_M_Array_Shader_44(), // 272 + compile ps_2_0 PS_M_Array_Shader_45(), // 273 + compile ps_2_0 PS_M_Array_Shader_46(), // 274 + compile ps_2_0 PS_M_Array_Shader_47(), // 275 + compile ps_2_0 PS_M_Array_Shader_48(), // 276 + compile ps_2_0 PS_M_Array_Shader_49(), // 277 + compile ps_2_0 PS_M_Array_Shader_50(), // 278 + compile ps_2_0 PS_M_Array_Shader_51(), // 279 + compile ps_2_0 PS_M_Array_Shader_52(), // 280 + compile ps_2_0 PS_M_Array_Shader_53(), // 281 + compile ps_2_0 PS_M_Array_Shader_54(), // 282 + compile ps_2_0 PS_M_Array_Shader_55(), // 283 + compile ps_2_0 PS_M_Array_Shader_56(), // 284 + compile ps_2_0 PS_M_Array_Shader_57(), // 285 + compile ps_2_0 PS_M_Array_Shader_58(), // 286 + compile ps_2_0 PS_M_Array_Shader_59(), // 287 + compile ps_2_0 PS_M_Array_Shader_60(), // 288 + compile ps_2_0 PS_M_Array_Shader_61(), // 289 + compile ps_2_0 PS_M_Array_Shader_62(), // 290 + compile ps_2_0 PS_M_Array_Shader_63(), // 291 + compile ps_2_0 PS_M_Array_Shader_64(), // 292 + compile ps_2_0 PS_M_Array_Shader_65(), // 293 + compile ps_2_0 PS_M_Array_Shader_66(), // 294 + compile ps_2_0 PS_M_Array_Shader_67(), // 295 + compile ps_2_0 PS_M_Array_Shader_68(), // 296 + compile ps_2_0 PS_M_Array_Shader_69(), // 297 + compile ps_2_0 PS_M_Array_Shader_70(), // 298 + compile ps_2_0 PS_M_Array_Shader_71(), // 299 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 17 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c11.xy, c2.x, c0.zw + expr11.xy = Time.x * TexCoordTransform_0.zw; + // mul r0.x, c1.x, c2.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c1.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c1.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c1.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c1.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c1.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c1.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c1.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c17.xy, r0.x, r0.yz + expr17.xy = temp0.x * temp0.yz; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 oT1.x, r1, c20 + o.texcoord1 = dot(temp1, (View._m02_m12_m22_m32)); + // mov r0.x, c21.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul oD0.x, r0.x, v2.w + o.color = temp0.x * i.color.w; + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad r0.xy, v1, r0, c11 + temp0.xy = i.texcoord.xy * temp0.xy + expr11.xy; + // add oT0.xy, r0, c17 + o.texcoord = temp0 + expr17; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 17 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c11.xy, c2.x, c0.zw + expr11.xy = Time.x * TexCoordTransform_0.zw; + // mul r0.x, c1.x, c2.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c1.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c1.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c1.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c1.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c1.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c1.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c1.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c17.xy, r0.x, r0.yz + expr17.xy = temp0.x * temp0.yz; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 oT1.x, r0, c20 + o.texcoord1 = dot(temp0, (View._m02_m12_m22_m32)); + // mov r0.x, c21.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul oD0.x, r0.x, v3.w + o.color = temp0.x * i.color.w; + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad r0.xy, v2, r0, c11 + temp0.xy = i.texcoord.xy * temp0.xy + expr11.xy; + // add oT0.xy, r0, c17 + o.texcoord = temp0 + expr17; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 17 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c11.xy, c2.x, c0.zw + expr11.xy = Time.x * TexCoordTransform_0.zw; + // mul r0.x, c1.x, c2.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c1.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c1.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c1.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c1.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c1.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c1.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c1.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c17.xy, r0.x, r0.yz + expr17.xy = temp0.x * temp0.yz; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 oT1.x, r0, c20 + o.texcoord1 = dot(temp0, (View._m02_m12_m22_m32)); + // mov r0.x, c21.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul oD0.x, r0.x, v5.w + o.color = temp0.x * i.color.w; + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad r0.xy, v4, r0, c11 + temp0.xy = i.texcoord.xy * temp0.xy + expr11.xy; + // add oT0.xy, r0, c17 + o.texcoord = temp0 + expr17; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_3 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_3_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_3_Output +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; +}; + +VSCreateShadowMap_Array_Shader_3_Output VSCreateShadowMap_Array_Shader_3(VSCreateShadowMap_Array_Shader_3_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 17 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c11.xy, c2.x, c0.zw + expr11.xy = Time.x * TexCoordTransform_0.zw; + // mul r0.x, c1.x, c2.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c1.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c1.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c1.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c1.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c1.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c1.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c1.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c17.xy, r0.x, r0.yz + expr17.xy = temp0.x * temp0.yz; + } + + VSCreateShadowMap_Array_Shader_3_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mov r0.x, c21.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul oD0.x, r0.x, v2.w + o.color = temp0.x * i.color.w; + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad r0.xy, v1, r0, c11 + temp0.xy = i.texcoord.xy * temp0.xy + expr11.xy; + // add oT0.xy, r0, c17 + o.texcoord = temp0 + expr17; + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 oT1.x, r0, c20 + o.texcoord1 = dot(temp0, (View._m02_m12_m22_m32)); + // mov oPos, c0.x + o.position = float4(1, 1, 1, 1); + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_4 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_4_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_4_Output +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; +}; + +VSCreateShadowMap_Array_Shader_4_Output VSCreateShadowMap_Array_Shader_4(VSCreateShadowMap_Array_Shader_4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 17 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c11.xy, c2.x, c0.zw + expr11.xy = Time.x * TexCoordTransform_0.zw; + // mul r0.x, c1.x, c2.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c1.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c1.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c1.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c1.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c1.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c1.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c1.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c17.xy, r0.x, r0.yz + expr17.xy = temp0.x * temp0.yz; + } + + VSCreateShadowMap_Array_Shader_4_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // mov r0.x, c21.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul oD0.x, r0.x, v3.w + o.color = temp0.x * i.color.w; + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad r0.xy, v2, r0, c11 + temp0.xy = i.texcoord.xy * temp0.xy + expr11.xy; + // add oT0.xy, r0, c17 + o.texcoord = temp0 + expr17; + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oT1.x, r0, c20 + o.texcoord1 = dot(temp0, (View._m02_m12_m22_m32)); + // mov oPos, c0.x + o.position = float4(1, 1, 1, 1); + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_5 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_5_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_5_Output +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; +}; + +VSCreateShadowMap_Array_Shader_5_Output VSCreateShadowMap_Array_Shader_5(VSCreateShadowMap_Array_Shader_5_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 17 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c11.xy, c2.x, c0.zw + expr11.xy = Time.x * TexCoordTransform_0.zw; + // mul r0.x, c1.x, c2.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c1.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c1.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c1.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c1.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c1.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c1.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c1.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c17.xy, r0.x, r0.yz + expr17.xy = temp0.x * temp0.yz; + } + + VSCreateShadowMap_Array_Shader_5_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // mov r0.x, c21.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul oD0.x, r0.x, v5.w + o.color = temp0.x * i.color.w; + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad r0.xy, v4, r0, c11 + temp0.xy = i.texcoord.xy * temp0.xy + expr11.xy; + // add oT0.xy, r0, c17 + o.texcoord = temp0 + expr17; + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oT1.x, r0, c20 + o.texcoord1 = dot(temp0, (View._m02_m12_m22_m32)); + // mov oPos, c0.x + o.position = float4(1, 1, 1, 1); + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[6] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 306 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 307 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 308 + compile vs_2_0 VSCreateShadowMap_Array_Shader_3(), // 309 + compile vs_2_0 VSCreateShadowMap_Array_Shader_4(), // 310 + compile vs_2_0 VSCreateShadowMap_Array_Shader_5(), // 311 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_1(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t1.x + // add r0, v0.x, c0.x + temp0 = i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mad r0, v0.x, r0.w, c0.x + temp0 = i.color.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[4] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 312 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 313 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 314 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 315 +}; +// _CreateShadowMap_Expression227 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression227() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c2.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c1.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r1.x, r0.x + temp2.x = temp1.x < temp0.x; + // add r0.x, r2.x, r2.x + temp0.x = temp2.x + temp2.x; + // min r0.y, c0.x, (1) + temp0.y = min(NumTextures.x, (1)); + // add c0.x, r0.x, r0.y + expr0.x = temp0.x + temp0.y; + return expr0; +} + +// _CreateShadowMap_Expression228 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression228() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // mul r0.x, r2.x, (3) + temp0.x = temp2.x * (3); + // min r0.y, c0.x, (2) + temp0.y = min(NumJointsPerVertex.x, (2)); + // add c0.x, r0.x, r0.y + expr0.x = temp0.x + temp0.y; + return expr0; +} + +// _Default_L_Expression229 Expression_2_0 Has PRES False +float _Default_L_Expression229() +{ + float4 temp0; + float4 temp1; + float1 expr0; + // min r0.x, c1.x, (2) + temp0.x = min(NumTextures.x, (2)); + // mul r0.y, c2.x, (3) + temp0.y = SecondaryTextureBlendMode.x * (3); + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // mul r0.x, c0.x, (36) + temp0.x = HasShadow.x * (36); + // add c0.x, r1.x, r0.x + expr0.x = temp1.x + temp0.x; + return expr0; +} + +// _Default_L_Expression230 Expression_2_0 Has PRES False +float _Default_L_Expression230() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // min r0.x, c3.x, (2) + temp0.x = min(TexCoordMapper_0.x, (2)); + // mul r1.x, r0.x, (3) + temp1.x = temp0.x * (3); + // min r0.x, c1.x, (2) + temp0.x = min(NumJointsPerVertex.x, (2)); + // add r2.x, r1.x, r0.x + temp2.x = temp1.x + temp0.x; + // min r0.x, c4.x, (1) + temp0.x = min(TexCoordMapper_1.x, (1)); + // mul r1.x, r0.x, (9) + temp1.x = temp0.x * (9); + // add r0.x, r2.x, r1.x + temp0.x = temp2.x + temp1.x; + // mul r0.y, c0.x, c2.x + temp0.y = HasRecolorColors.x * UseRecolorColors.x; + // mul r1.x, r0.y, (18) + temp1.x = temp0.y * (18); + // add c0.x, r0.x, r1.x + expr0.x = temp0.x + temp1.x; + return expr0; +} + +// _Default_M_Expression231 Expression_2_0 Has PRES False +float _Default_M_Expression231() +{ + float4 temp0; + float4 temp1; + float1 expr0; + // min r0.x, c1.x, (2) + temp0.x = min(NumTextures.x, (2)); + // mul r0.y, c2.x, (3) + temp0.y = SecondaryTextureBlendMode.x * (3); + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // mul r0.x, c0.x, (36) + temp0.x = HasShadow.x * (36); + // add c0.x, r1.x, r0.x + expr0.x = temp1.x + temp0.x; + return expr0; +} + +// _Default_M_Expression232 Expression_2_0 Has PRES False +float _Default_M_Expression232() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // min r0.x, c3.x, (2) + temp0.x = min(TexCoordMapper_0.x, (2)); + // mul r1.x, r0.x, (3) + temp1.x = temp0.x * (3); + // min r0.x, c1.x, (2) + temp0.x = min(NumJointsPerVertex.x, (2)); + // add r2.x, r1.x, r0.x + temp2.x = temp1.x + temp0.x; + // min r0.x, c4.x, (1) + temp0.x = min(TexCoordMapper_1.x, (1)); + // mul r1.x, r0.x, (9) + temp1.x = temp0.x * (9); + // add r0.x, r2.x, r1.x + temp0.x = temp2.x + temp1.x; + // mul r0.y, c0.x, c2.x + temp0.y = HasRecolorColors.x * UseRecolorColors.x; + // mul r1.x, r0.y, (18) + temp1.x = temp0.y * (18); + // add c0.x, r0.x, r1.x + expr0.x = temp0.x + temp1.x; + return expr0; +} + +// Default_Expression233 Expression_2_0 Has PRES False +float Default_Expression233() +{ + float4 temp0; + float4 temp1; + float1 expr0; + // min r0.x, c1.x, (2) + temp0.x = min(NumTextures.x, (2)); + // mul r0.y, c2.x, (3) + temp0.y = SecondaryTextureBlendMode.x * (3); + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // mul r0.x, c0.x, (36) + temp0.x = HasShadow.x * (36); + // add c0.x, r1.x, r0.x + expr0.x = temp1.x + temp0.x; + return expr0; +} + +// Default_Expression234 Expression_2_0 Has PRES False +float Default_Expression234() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // min r0.x, c3.x, (2) + temp0.x = min(TexCoordMapper_0.x, (2)); + // mul r1.x, r0.x, (3) + temp1.x = temp0.x * (3); + // min r0.x, c1.x, (2) + temp0.x = min(NumJointsPerVertex.x, (2)); + // add r2.x, r1.x, r0.x + temp2.x = temp1.x + temp0.x; + // min r0.x, c4.x, (1) + temp0.x = min(TexCoordMapper_1.x, (1)); + // mul r1.x, r0.x, (9) + temp1.x = temp0.x * (9); + // add r0.x, r2.x, r1.x + temp0.x = temp2.x + temp1.x; + // mul r0.y, c0.x, c2.x + temp0.y = HasRecolorColors.x * UseRecolorColors.x; + // mul r1.x, r0.y, (18) + temp1.x = temp0.y * (18); + // add c0.x, r0.x, r1.x + expr0.x = temp0.x + temp1.x; + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression234()]; // 190 + PixelShader = PS_Array[Default_Expression233()]; // 191 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression232()]; // 301 + PixelShader = PS_M_Array[_Default_M_Expression231()]; // 302 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression230()]; // 304 + PixelShader = PS_M_Array[_Default_L_Expression229()]; // 305 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression228()]; // 317 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression227()]; // 318 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/defaultw3dnofognocloud.fx b/defaultw3dnofognocloud.fx new file mode 100644 index 0000000..e875c0d --- /dev/null +++ b/defaultw3dnofognocloud.fx @@ -0,0 +1,39456 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier : register(vs_2_0, c3) : register(vs_3_0, c3) = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(vs_2_0, c0) : register(vs_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float3 ColorAmbient : register(vs_2_0, c23) : register(vs_3_0, c26) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c24) : register(vs_3_0, c27) = { 1, 1, 1 }; +float3 ColorSpecular ; +float Shininess : register(vs_2_0, c26) : register(vs_3_0, c29) = { 1 }; +float3 ColorEmissive ; +float EmissiveHDRMultipler = { 1 }; +float Opacity : register(vs_2_0, c27) : register(vs_3_0, c30) = { 1 }; +float EdgeFadeOut ; +int NumTextures = { 1 }; +texture Texture_0 ; // 37 +sampler2D Texture_0Sampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 39 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture Texture_1 ; // 42 +sampler2D Texture_1Sampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool UseRecolorColors ; +bool HouseColorPulse : register(vs_2_0, c28) : register(vs_3_0, c31) ; +bool UseWorldCords : register(vs_2_0, c29) : register(vs_3_0, c32) ; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +int SecondaryTextureBlendMode ; +int TexCoordMapper_0 ; +float4 TexCoordTransform_0 = { 1, 1, 0, 0 }; +float4 TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0 = { 0, 1, 1, 0 }; +int TexCoordMapper_1 ; +float4 TexCoordTransform_1 : register(vs_2_0, c30) : register(vs_3_0, c33) = { 1, 1, 0, 0 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c31) : register(vs_3_0, c34) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 65 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 68 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 72 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 76 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +row_major float4x4 View : View; +float Time : Time; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c21.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c19 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c20 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c21.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c18 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c19, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c22.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c20 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c23.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // add r0.xy, r1, c24.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c24 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c21.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c19 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c20 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c21.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c18 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c19, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c22.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c20 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c23.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c24.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c24 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c21.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c19 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c20 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c21.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c18 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c19, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c22.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c20 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c23.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c24.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c24 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_3 Vertex_3_0 Has PRES True +struct VS_Array_Shader_3_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_3_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_3_Output VS_Array_Shader_3(VS_Array_Shader_3_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_3_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c20, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c23.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c21 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xy, c25 + temp0.xy = TexCoordTransform_0.xy; + // mad o3.xy, v2, r0, c18 + o.texcoord = i.texcoord * temp0 + expr18; + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c24.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // add r0.xy, r1, c26.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c26 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_4 Vertex_3_0 Has PRES True +struct VS_Array_Shader_4_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_4_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_4_Output VS_Array_Shader_4(VS_Array_Shader_4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_4_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c25 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v3, r1, c18 + o.texcoord = i.texcoord * temp1 + expr18; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c24.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_5 Vertex_3_0 Has PRES True +struct VS_Array_Shader_5_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_5_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_5_Output VS_Array_Shader_5(VS_Array_Shader_5_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_5_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c25 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v6, r1, c18 + o.texcoord = i.texcoord * temp1 + expr18; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c24.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_6 Vertex_3_0 Has PRES True +struct VS_Array_Shader_6_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_6_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_6_Output VS_Array_Shader_6(VS_Array_Shader_6_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_6_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c27.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c25 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c26 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c27.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c24 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c25, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c28.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c26 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v2 + o.texcoord = expr23 + i.texcoord; + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c29.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // add r0.xy, r1, c30.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c30 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_7 Vertex_3_0 Has PRES True +struct VS_Array_Shader_7_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_7_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_7_Output VS_Array_Shader_7(VS_Array_Shader_7_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_7_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c27.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c25 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c26 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c27.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c24 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c25, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c28.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c26 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v3 + o.texcoord = expr23 + i.texcoord; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c29.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c30.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c30 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_8 Vertex_3_0 Has PRES True +struct VS_Array_Shader_8_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_8_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_8_Output VS_Array_Shader_8(VS_Array_Shader_8_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_8_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c27.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c25 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c26 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c27.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c24 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c25, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c28.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c26 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v6 + o.texcoord = expr23 + i.texcoord; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c29.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c30.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c30 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_9 Vertex_3_0 Has PRES True +struct VS_Array_Shader_9_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_9_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_9_Output VS_Array_Shader_9(VS_Array_Shader_9_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_9_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c20, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c23.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c21 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // lrp r0.xy, c24.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c25 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c18 + o.texcoord1 = temp0 * temp2 + expr18; + // add r0.xy, r1, c26.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c26 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_10 Vertex_3_0 Has PRES True +struct VS_Array_Shader_10_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_10_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_10_Output VS_Array_Shader_10(VS_Array_Shader_10_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_10_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // lrp r1.xy, c24.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c25 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c18 + o.texcoord1 = temp1 * temp2 + expr18; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_11 Vertex_3_0 Has PRES True +struct VS_Array_Shader_11_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_11_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_11_Output VS_Array_Shader_11(VS_Array_Shader_11_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c6.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_11_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // lrp r1.xy, c24.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c25 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c18 + o.texcoord1 = temp1 * temp2 + expr18; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_12 Vertex_3_0 Has PRES True +struct VS_Array_Shader_12_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_12_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_12_Output VS_Array_Shader_12(VS_Array_Shader_12_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c7.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + // mul c19.xy, c7.x, c6.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_12_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c21, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c24.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c22 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xy, c26 + temp0.xy = TexCoordTransform_0.xy; + // mad o3.xy, v2, r0, c18 + o.texcoord = i.texcoord * temp0 + expr18; + // lrp r0.xy, c25.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c19 + o.texcoord1 = temp0 * temp2 + expr19; + // add r0.xy, r1, c28.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c28 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_13 Vertex_3_0 Has PRES True +struct VS_Array_Shader_13_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_13_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_13_Output VS_Array_Shader_13(VS_Array_Shader_13_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c7.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + // mul c19.xy, c7.x, c6.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_13_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c26 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v3, r1, c18 + o.texcoord = i.texcoord * temp1 + expr18; + // lrp r1.xy, c25.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c19 + o.texcoord1 = temp1 * temp2 + expr19; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_14 Vertex_3_0 Has PRES True +struct VS_Array_Shader_14_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_14_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_14_Output VS_Array_Shader_14(VS_Array_Shader_14_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c18.xy, c7.x, c5.zw + expr18.xy = Time.x * TexCoordTransform_0.zw; + // mul c19.xy, c7.x, c6.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_14_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c26 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v6, r1, c18 + o.texcoord = i.texcoord * temp1 + expr18; + // lrp r1.xy, c25.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c19 + o.texcoord1 = temp1 * temp2 + expr19; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_15 Vertex_3_0 Has PRES True +struct VS_Array_Shader_15_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_15_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_15_Output VS_Array_Shader_15(VS_Array_Shader_15_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + // mul c24.xy, c7.x, c6.zw + expr24.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_15_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3, r2.w, v4 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mov r3.xyz, v4 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c26 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c27 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c0.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c16.x, r0, r2 + temp0.xyz = expr16.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r0.xyz, r0, c26, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c2.x + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c29.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c27 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c2.x + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v2 + o.texcoord = expr23 + i.texcoord; + // lrp r0.xy, c30.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c31 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c24 + o.texcoord1 = temp0 * temp2 + expr24; + // add r0.xy, r1, c32.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c32 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c2.yyzw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_16 Vertex_3_0 Has PRES True +struct VS_Array_Shader_16_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_16_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_16_Output VS_Array_Shader_16(VS_Array_Shader_16_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + // mul c24.xy, c7.x, c6.zw + expr24.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_16_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c11.x + temp2.w = saturate(abs(temp2).w * expr11.x); + // mad r3.x, r2.w, c0.z, c0.w + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3, r2.w, v5 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mov r3.xyz, v5 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c26 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c27 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c26, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c29.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c27 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v3 + o.texcoord = expr23 + i.texcoord; + // lrp r1.xy, c30.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c31 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c24 + o.texcoord1 = temp1 * temp2 + expr24; + // add r1.xy, r0, c32.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c32 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_17 Vertex_3_0 Has PRES True +struct VS_Array_Shader_17_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_17_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_17_Output VS_Array_Shader_17(VS_Array_Shader_17_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 5 + 1 - ConstOutput: 23 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c3.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c13.x, r0.x, r1.x + expr13.x = max(temp0.x, temp1.x); + // lt c14.x, (0), c0.x + expr14.x = (0) < NumPointLights.x; + // lt c15.x, (1), c0.x + expr15.x = (1) < NumPointLights.x; + // lt c16.x, (2), c0.x + expr16.x = (2) < NumPointLights.x; + // mul c17.xyz, c2.x, c1.xyz + expr17.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c23.xy, r0.x, r0.yz + expr23.xy = temp0.x * temp0.yz; + // mul c24.xy, c7.x, c6.zw + expr24.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_17_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c11.x + temp3.x = saturate(abs(temp3).x * expr11.x); + // mad r3.y, r3.x, c0.z, c0.w + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3, r2.w, v8 + temp3 = temp2.w * i.color; + // mov r4.xyz, r3 + temp4.xyz = temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mov r3.xyz, v8 + temp3.xyz = i.color.xyz; + // lrp r5, c13.x, r3, r4 + temp5 = lerp(temp4, temp3, expr13.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c26 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.x + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c27 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.x + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c14.x, r2, r3 + temp2.xyz = expr14.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.y + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r3, r2 + temp2.xyz = expr15.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c16.x, r1, r2 + temp1.xyz = expr16.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c17 + temp2.xyz = temp2.xyz * temp3.xyz + expr17.xyz; + // mad r1.xyz, r1, c26, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c29.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c27 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.x + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c23, v6 + o.texcoord = expr23 + i.texcoord; + // lrp r1.xy, c30.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c31 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c24 + o.texcoord1 = temp1 * temp2 + expr24; + // add r1.xy, r0, c32.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c32 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o5.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_18 Vertex_3_0 Has PRES True +struct VS_Array_Shader_18_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_18_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_18_Output VS_Array_Shader_18(VS_Array_Shader_18_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_18_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c27, 1, 0, 0.25, 0.5 + // def c28, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c27.xxxy, c27.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c27.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c27 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c24.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c27.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c27.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c27.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c27.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c27.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c27.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c27.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c27.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c27.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c27.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c27.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c27.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c20, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c27.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c23.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c21 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c27.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c25.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // add r0.xy, r1, c26.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c26 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c27.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mov o5.xy, c27.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c28.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_19 Vertex_3_0 Has PRES True +struct VS_Array_Shader_19_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_19_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_19_Output VS_Array_Shader_19(VS_Array_Shader_19_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_19_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c27, 1, -1, 0.25, 0.5 + // def c28, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c27.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c27.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c27.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c27 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c24.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c27.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c27.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c27.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c27.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c27.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c27.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c27.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c27.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c27.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c25.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c27.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mov o5.xy, c27.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c28.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_20 Vertex_3_0 Has PRES True +struct VS_Array_Shader_20_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_20_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_20_Output VS_Array_Shader_20(VS_Array_Shader_20_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_Array_Shader_20_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c27, 1, -1, 0.25, 0.5 + // def c28, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c27.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c27.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c27.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c27.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c27.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c27 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c24.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c2.x, c2.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c22.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c20 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c27.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c21 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c27.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c27.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c22.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c27.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c27.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c27.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c27.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c19 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c20, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c27.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c23.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c21 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c27.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c25.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c26.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c26 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c27.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mov o5.xy, c27.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c28.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_21 Vertex_3_0 Has PRES True +struct VS_Array_Shader_21_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_21_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_21_Output VS_Array_Shader_21(VS_Array_Shader_21_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_21_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c29, 1, 0, 0.25, 0.5 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c29.xxxy, c29.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c29.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c29 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c29.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c29.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c29.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c29.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c29.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c29.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c29.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c29.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c29.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c29.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c29.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c29.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c21, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c29.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c24.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c22 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c29.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xy, c27 + temp0.xy = TexCoordTransform_0.xy; + // mad o3.xy, v2, r0, c19 + o.texcoord = i.texcoord * temp0 + expr19; + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c26.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // add r0.xy, r1, c28.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c28 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c29.x + o.color1.w = float1(1); + // mov o5.xy, c29.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c30.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_22 Vertex_3_0 Has PRES True +struct VS_Array_Shader_22_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_22_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_22_Output VS_Array_Shader_22(VS_Array_Shader_22_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_22_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c29, 1, -1, 0.25, 0.5 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c29.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c29.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c29.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c29 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c29.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c29.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c29.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c29.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c29.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c29.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c27 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v3, r1, c19 + o.texcoord = i.texcoord * temp1 + expr19; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c26.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c29.x + o.color1.w = float1(1); + // mov o5.xy, c29.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c30.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_23 Vertex_3_0 Has PRES True +struct VS_Array_Shader_23_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_23_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_23_Output VS_Array_Shader_23(VS_Array_Shader_23_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_23_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c29, 1, -1, 0.25, 0.5 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c29.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c29.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c29.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c29.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c29.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c29 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c2.x, c2.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c29.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c29.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c29.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c29.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c29.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c29.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c27 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v6, r1, c19 + o.texcoord = i.texcoord * temp1 + expr19; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c26.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c29.x + o.color1.w = float1(1); + // mov o5.xy, c29.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c30.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_24 Vertex_3_0 Has PRES True +struct VS_Array_Shader_24_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_24_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_24_Output VS_Array_Shader_24(VS_Array_Shader_24_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_24_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c33, 1, 0, 0.25, 0.5 + // def c34, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c33.xxxy, c33.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c33.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c33 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c30.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c26 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c33.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c27 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c33.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c33.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c33.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c33.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c33.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c33.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c33.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c33.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c33.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c33.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c33.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c26, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c33.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c29.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c27 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c33.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v2 + o.texcoord = expr24 + i.texcoord; + // add r0.xy, r1, -v3 + temp0.xy = temp1.xy + -i.texcoord1.xy; + // mad o4.xy, c31.x, r0, v3 + o.texcoord1 = UseWorldCords.x * temp0 + i.texcoord1; + // add r0.xy, r1, c32.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c32 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c33.x + o.color1.w = float1(1); + // mov o5.xy, c33.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c34.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_25 Vertex_3_0 Has PRES True +struct VS_Array_Shader_25_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_25_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_25_Output VS_Array_Shader_25(VS_Array_Shader_25_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_25_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c33, 1, -1, 0.25, 0.5 + // def c34, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c33.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c33.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c33.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c33 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c30.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c26 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c33.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c27 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c33.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c33.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c33.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c33.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c33.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c33.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c26, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c33.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c29.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c27 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c33.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v3 + o.texcoord = expr24 + i.texcoord; + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c31.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c32.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c32 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c33.x + o.color1.w = float1(1); + // mov o5.xy, c33.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c34.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_26 Vertex_3_0 Has PRES True +struct VS_Array_Shader_26_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_26_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_26_Output VS_Array_Shader_26(VS_Array_Shader_26_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 14 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + } + + VS_Array_Shader_26_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, 1, -1, 0.25, 0.5 + // def c33, -2, 3, 0, 0 + // def c34, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c2 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c30.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c33.x, c33.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c28.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c26 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c27 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c33.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c33.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c28.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c33.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c33.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c33.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c25 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c26, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c29.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c27 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v6 + o.texcoord = expr24 + i.texcoord; + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad o4.xy, c31.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c32.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c32 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c2.x + o.color1.w = float1(1); + // mov o5.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c34.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_27 Vertex_3_0 Has PRES True +struct VS_Array_Shader_27_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_27_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_27_Output VS_Array_Shader_27(VS_Array_Shader_27_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_27_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c29, 1, 0, 0.25, 0.5 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c29.xxxy, c29.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c29.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c29 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c29.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c29.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c29.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c29.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c29.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c29.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c29.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c29.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c29.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c29.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c29.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c29.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c21, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c29.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c24.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c22 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c29.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // lrp r0.xy, c26.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c19 + o.texcoord1 = temp0 * temp2 + expr19; + // add r0.xy, r1, c28.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c28 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c29.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mov o5.xy, c29.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c30.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_28 Vertex_3_0 Has PRES True +struct VS_Array_Shader_28_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_28_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_28_Output VS_Array_Shader_28(VS_Array_Shader_28_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_28_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c29, 1, -1, 0.25, 0.5 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c29.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c29.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c29.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c29 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c29.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c29.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c29.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c29.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c29.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c29.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // lrp r1.xy, c26.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c19 + o.texcoord1 = temp1 * temp2 + expr19; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c29.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mov o5.xy, c29.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c30.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_29 Vertex_3_0 Has PRES True +struct VS_Array_Shader_29_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_29_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_29_Output VS_Array_Shader_29(VS_Array_Shader_29_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 6 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c6.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_29_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c29, 1, -1, 0.25, 0.5 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c29.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c29.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c29.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c29.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c29.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c29 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c25.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c2.x, c2.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c23.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c21 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c29.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c22 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c29.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c29.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c23.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c29.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c29.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c20 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c21, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c29.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c24.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c22 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c29.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // lrp r1.xy, c26.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c27 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c19 + o.texcoord1 = temp1 * temp2 + expr19; + // add r1.xy, r0, c28.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c28 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c29.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mov o5.xy, c29.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c30.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_30 Vertex_3_0 Has PRES True +struct VS_Array_Shader_30_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_30_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_30_Output VS_Array_Shader_30(VS_Array_Shader_30_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c7.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + // mul c20.xy, c7.x, c6.zw + expr20.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_30_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c31, 1, 0, 0.25, 0.5 + // def c32, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c31.xxxy, c31.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c31.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c31 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c26.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c24.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c22 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c31.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c23 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c31.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c31.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c31.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c31.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c24.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c31.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c31.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c31.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c31.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c31.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c31.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c31.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c21 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c22, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c31.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c25.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c23 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c31.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xy, c28 + temp0.xy = TexCoordTransform_0.xy; + // mad o3.xy, v2, r0, c19 + o.texcoord = i.texcoord * temp0 + expr19; + // lrp r0.xy, c27.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c29 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c20 + o.texcoord1 = temp0 * temp2 + expr20; + // add r0.xy, r1, c30.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c30 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c31.x + o.color1.w = float1(1); + // mov o5.xy, c31.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c32.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_31 Vertex_3_0 Has PRES True +struct VS_Array_Shader_31_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_31_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_31_Output VS_Array_Shader_31(VS_Array_Shader_31_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c7.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + // mul c20.xy, c7.x, c6.zw + expr20.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_31_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c31, 1, -1, 0.25, 0.5 + // def c32, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c31.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c31.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c31.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c31 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c26.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c24.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c22 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c31.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c23 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c31.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c31.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c24.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c31.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c31.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c31.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c31.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c21 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c22, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c31.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c25.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c23 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c31.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c28 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v3, r1, c19 + o.texcoord = i.texcoord * temp1 + expr19; + // lrp r1.xy, c27.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c29 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c20 + o.texcoord1 = temp1 * temp2 + expr20; + // add r1.xy, r0, c30.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c30 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c31.x + o.color1.w = float1(1); + // mov o5.xy, c31.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c32.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_32 Vertex_3_0 Has PRES True +struct VS_Array_Shader_32_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_32_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_32_Output VS_Array_Shader_32(VS_Array_Shader_32_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 7 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c19.xy, c7.x, c5.zw + expr19.xy = Time.x * TexCoordTransform_0.zw; + // mul c20.xy, c7.x, c6.zw + expr20.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_32_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c31, 1, -1, 0.25, 0.5 + // def c32, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c31.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c31.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c31.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c31.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c31.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c31 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c26.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c2.x, c2.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c24.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c22 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c31.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c23 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c31.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c31.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c24.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c31.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c31.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c31.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c31.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c21 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c22, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c31.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c25.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c23 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c31.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.xy, c28 + temp1.xy = TexCoordTransform_0.xy; + // mad o3.xy, v6, r1, c19 + o.texcoord = i.texcoord * temp1 + expr19; + // lrp r1.xy, c27.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c29 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c20 + o.texcoord1 = temp1 * temp2 + expr20; + // add r1.xy, r0, c30.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c30 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c31.x + o.color1.w = float1(1); + // mov o5.xy, c31.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c32.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_33 Vertex_3_0 Has PRES True +struct VS_Array_Shader_33_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_33_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_33_Output VS_Array_Shader_33(VS_Array_Shader_33_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + // mul c25.xy, c7.x, c6.zw + expr25.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_33_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c35, 1, 0, 0.25, 0.5 + // def c36, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // mad r0, v0.xyzx, c35.xxxy, c35.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r1.w, c35.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // mov r4.xz, c35 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v4 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c31.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v4.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v4.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r0.w, c6 + temp3.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r0, r4 + temp3.x = dot(temp0.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c29.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c27 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c35.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c28 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c35.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c35.y + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c35.y + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c35.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c29.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c35.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c35.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c35.y + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r6, r0.w + temp2.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c35.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c35.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c35.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c35.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c17.x, r0, r2 + temp0.xyz = expr17.xxx * temp0.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c26 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r0.xyz, r0, c27, r2 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mul o1.xyz, r0, c35.w + o.color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.x, c30.x + temp0.x = Opacity.x; + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * OpacityOverride.x; + // mul o1.w, r5.w, r0.x + o.color.w = temp5.w * temp0.x; + // mul r0.xyz, r4, c28 + temp0.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c35.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v2 + o.texcoord = expr24 + i.texcoord; + // lrp r0.xy, c32.x, r1, v3 + temp0.xy = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c33 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r0, r2, c25 + o.texcoord1 = temp0 * temp2 + expr25; + // add r0.xy, r1, c34.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r0, c34 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o2.w, c35.x + o.color1.w = float1(1); + // mov o5.xy, c35.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r0, r1.x, c36.xxyw + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov o7.w, r0.w + o.texcoord4.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_34 Vertex_3_0 Has PRES True +struct VS_Array_Shader_34_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_34_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_34_Output VS_Array_Shader_34(VS_Array_Shader_34_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + // mul c25.xy, c7.x, c6.zw + expr25.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_34_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c2, -2, 3, 0, 0 + // def c35, 1, -1, 0.25, 0.5 + // def c36, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c35.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c35.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov r0.w, c35.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c35 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v5 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c31.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mul_sat r2.w, r2_abs.w, c12.x + temp2.w = saturate(abs(temp2).w * expr12.x); + // mad r3.x, r2.w, c2.x, c2.y + temp3.x = temp2.w * float1(-2) + float1(3); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v5.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c29.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c27 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c35.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c28 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c35.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c2.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c2.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c35.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c29.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c35.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c35.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c35.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c2.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c35.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c2.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c26 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c27, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c35.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c30.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c28 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c35.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v3 + o.texcoord = expr24 + i.texcoord; + // lrp r1.xy, c32.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c33 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c25 + o.texcoord1 = temp1 * temp2 + expr25; + // add r1.xy, r0, c34.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c34 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c35.x + o.color1.w = float1(1); + // mov o5.xy, c35.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c36.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +// VS_Array_Shader_35 Vertex_3_0 Has PRES True +struct VS_Array_Shader_35_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_Array_Shader_35_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_35_Output VS_Array_Shader_35(VS_Array_Shader_35_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 5 + 1 - ConstOutput: 24 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c7.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c3.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-2) + temp0.x = BlendMode.x + (-2); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max c14.x, r0.x, r1.x + expr14.x = max(temp0.x, temp1.x); + // lt c15.x, (0), c0.x + expr15.x = (0) < NumPointLights.x; + // lt c16.x, (1), c0.x + expr16.x = (1) < NumPointLights.x; + // lt c17.x, (2), c0.x + expr17.x = (2) < NumPointLights.x; + // mul c18.xyz, c2.x, c1.xyz + expr18.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c5.x, c7.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c5.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c5.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c5.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c5.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c5.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c5.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c5.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c24.xy, r0.x, r0.yz + expr24.xy = temp0.x * temp0.yz; + // mul c25.xy, c7.x, c6.zw + expr25.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_Array_Shader_35_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c2, 1, -1, 0.25, 0.5 + // def c35, -2, 3, 0, 0 + // def c36, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord1 o4.xy + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xy + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // mov r4.xz, c2 + temp4.xz = float2(1, 0.25); + // lrp r5.xyz, r4.z, r4.x, c0 + temp5.xyz = lerp(RecolorColor.xyz, temp4.xxx, temp4.zzz); + // mul r4.xyz, r5, v8 + temp4.xyz = temp5.xyz * i.color.xyz; + // mad r5.xyz, r4, c11.x, -r4 + temp5.xyz = temp4.xyz * expr11.xxx + -temp4.xyz; + // mad r4.xyz, c31.x, r5, r4 + temp4.xyz = HouseColorPulse.xxx * temp5.xyz + temp4.xyz; + // mul r2.w, v1.y, c129[a0.y].w + temp2.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r2.w, c129[a0.x].w, v1.x, r2.w + temp2.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp2.w; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // mul_sat r3.x, r3_abs.x, c12.x + temp3.x = saturate(abs(temp3).x * expr12.x); + // mad r3.y, r3.x, c35.x, c35.y + temp3.y = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.x, r3.x + temp3.x = temp3.x * temp3.x; + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r2.w, r2.w, r3.x + temp2.w = temp2.w * temp3.x; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // mul r4.w, r2.w, v8.w + temp4.w = temp2.w * i.color.w; + // mov r3.w, v8.w + temp3.w = i.color.w; + // lrp r5, c14.x, r4, r3 + temp5 = lerp(temp3, temp4, expr14.x); + // mad r3.xyz, r2, r1.w, c6 + temp3.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.x, r1, r4 + temp3.x = dot(temp1.xyz, temp4.xyz); + // slt r3.y, -r2.w, r2.w + temp3.y = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // slt r3.z, -r3.x, r3.x + temp3.z = (-temp3.x < temp3.x) ? 1 : 0; + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c29.x + temp4.x = pow(temp3.x, Shininess.x); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // mov r4.xyz, c5 + temp4.xyz = DirectionalLight[0].Color.xyz; + // mul r3.yzw, r4.xxyz, c3.xxyz + temp3.yzw = temp4.xyz * NoCloudMultiplier.xyz; + // mul r4.xyz, r2.w, r3.yzww + temp4.xyz = temp2.www * temp3.yzw; + // mul r3.xyz, r3.x, r3.yzww + temp3.xyz = temp3.xxx * temp3.yzw; + // mul r4.xyz, r4, c27 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r5, r4 + temp4.xyz = temp5.xyz * temp4.xyz; + // mul o8.xyz, r4, c2.w + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r3.xyz, r3, c28 + temp3.xyz = temp3.xyz * ColorSpecular.xyz; + // mul o9.xyz, r3, c2.w + o.texcoord6 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov r3.xyz, c35.w + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c35.w + temp4.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r1, c6[a0.x] + temp3.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r1, r7 + temp4.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r3.w, r3.w + temp6.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r6.x + temp3.w = temp3.w * temp6.x; + // slt r6.y, -r4.w, r4.w + temp6.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r4.w, c29.x + temp6.y = pow(temp4.w, Shininess.x); + // mul r4.w, r6.x, r6.y + temp4.w = temp6.x * temp6.y; + // mad r3.xyz, c5[a0.x], r3.w, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp3.xyz; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r2.xyz, -r0, c90 + temp2.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r2.xyz, r2, r1.w + temp2.xyz = temp2.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c89 + temp6.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r1.w, r1, r2 + temp1.w = dot(temp1.xyz, temp2.xyz); + // max r1.w, r1.w, c35.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r6, r1.w + temp2.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c15.x, r2, r3 + temp2.xyz = expr15.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r0, c93 + temp3.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c92 + temp6.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // max r1.w, r1.w, c35.w + temp1.w = max(temp1.w, float1(0)); + // mul r3.xyz, r6, r1.w + temp3.xyz = temp6.xyz * temp1.www; + // mad r2.xyz, c16.x, r3, r2 + temp2.xyz = expr16.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r0, c96 + temp3.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c2.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r6.xyz, r1.w, c95 + temp6.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r3 + temp1.x = dot(temp1.xyz, temp3.xyz); + // max r1.x, r1.x, c35.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c17.x, r1, r2 + temp1.xyz = expr17.xxx * temp1.xyz + temp2.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r3.xyz, c26 + temp3.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r3, c18 + temp2.xyz = temp2.xyz * temp3.xyz + expr18.xyz; + // mad r1.xyz, r1, c27, r2 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r1.xyz, r5, r1 + temp1.xyz = temp5.xyz * temp1.xyz; + // mul o1.xyz, r1, c2.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r1.x, c30.x + temp1.x = Opacity.x; + // mul r1.x, r1.x, c1.x + temp1.x = temp1.x * OpacityOverride.x; + // mul o1.w, r5.w, r1.x + o.color.w = temp5.w * temp1.x; + // mul r1.xyz, r4, c28 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c2.w + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add o3.xy, c24, v6 + o.texcoord = expr24 + i.texcoord; + // lrp r1.xy, c32.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c33 + temp2.xy = TexCoordTransform_1.xy; + // mad o4.xy, r1, r2, c25 + o.texcoord1 = temp1 * temp2 + expr25; + // add r1.xy, r0, c34.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o6.xy, r1, c34 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o2.w, c2.x + o.color1.w = float1(1); + // mov o5.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // mad o7.xyz, r1, r0.y, c36.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov o7.w, r0.x + o.texcoord4.w = temp0.x; + // + + return o; +} + +VertexShader VS_Array[36] = { + compile vs_3_0 VS_Array_Shader_0(), // 81 + compile vs_3_0 VS_Array_Shader_1(), // 82 + compile vs_3_0 VS_Array_Shader_2(), // 83 + compile vs_3_0 VS_Array_Shader_3(), // 84 + compile vs_3_0 VS_Array_Shader_4(), // 85 + compile vs_3_0 VS_Array_Shader_5(), // 86 + compile vs_3_0 VS_Array_Shader_6(), // 87 + compile vs_3_0 VS_Array_Shader_7(), // 88 + compile vs_3_0 VS_Array_Shader_8(), // 89 + compile vs_3_0 VS_Array_Shader_9(), // 90 + compile vs_3_0 VS_Array_Shader_10(), // 91 + compile vs_3_0 VS_Array_Shader_11(), // 92 + compile vs_3_0 VS_Array_Shader_12(), // 93 + compile vs_3_0 VS_Array_Shader_13(), // 94 + compile vs_3_0 VS_Array_Shader_14(), // 95 + compile vs_3_0 VS_Array_Shader_15(), // 96 + compile vs_3_0 VS_Array_Shader_16(), // 97 + compile vs_3_0 VS_Array_Shader_17(), // 98 + compile vs_3_0 VS_Array_Shader_18(), // 99 + compile vs_3_0 VS_Array_Shader_19(), // 100 + compile vs_3_0 VS_Array_Shader_20(), // 101 + compile vs_3_0 VS_Array_Shader_21(), // 102 + compile vs_3_0 VS_Array_Shader_22(), // 103 + compile vs_3_0 VS_Array_Shader_23(), // 104 + compile vs_3_0 VS_Array_Shader_24(), // 105 + compile vs_3_0 VS_Array_Shader_25(), // 106 + compile vs_3_0 VS_Array_Shader_26(), // 107 + compile vs_3_0 VS_Array_Shader_27(), // 108 + compile vs_3_0 VS_Array_Shader_28(), // 109 + compile vs_3_0 VS_Array_Shader_29(), // 110 + compile vs_3_0 VS_Array_Shader_30(), // 111 + compile vs_3_0 VS_Array_Shader_31(), // 112 + compile vs_3_0 VS_Array_Shader_32(), // 113 + compile vs_3_0 VS_Array_Shader_33(), // 114 + compile vs_3_0 VS_Array_Shader_34(), // 115 + compile vs_3_0 VS_Array_Shader_35(), // 116 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v6 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 4, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v6 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, c0.y + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_Shader_6_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_6(PS_Array_Shader_6_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_Shader_7_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_7(PS_Array_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_Shader_8_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_8(PS_Array_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s1 + temp0 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, v6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r2 + temp0.xyz = temp0.xyz + temp2.xyz; + // texld r2, v2, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mad r1.xyz, r0, -r2, r1 + temp1.xyz = temp0.xyz * -temp2.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r0.w, r1, r0 + temp0.xyz = temp0.www * temp1.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_9 Pixel_3_0 Has PRES False +struct PS_Array_Shader_9_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_9(PS_Array_Shader_9_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_10 Pixel_3_0 Has PRES False +struct PS_Array_Shader_10_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_10(PS_Array_Shader_10_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_11 Pixel_3_0 Has PRES False +struct PS_Array_Shader_11_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_11(PS_Array_Shader_11_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_12 Pixel_3_0 Has PRES False +struct PS_Array_Shader_12_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_12(PS_Array_Shader_12_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_13 Pixel_3_0 Has PRES False +struct PS_Array_Shader_13_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_13(PS_Array_Shader_13_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_14 Pixel_3_0 Has PRES False +struct PS_Array_Shader_14_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_14(PS_Array_Shader_14_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v6 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_15 Pixel_3_0 Has PRES False +struct PS_Array_Shader_15_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_15(PS_Array_Shader_15_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_16 Pixel_3_0 Has PRES False +struct PS_Array_Shader_16_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_16(PS_Array_Shader_16_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_17 Pixel_3_0 Has PRES False +struct PS_Array_Shader_17_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_17(PS_Array_Shader_17_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 4, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v6 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, c0.y + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_18 Pixel_3_0 Has PRES False +struct PS_Array_Shader_18_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_18(PS_Array_Shader_18_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_19 Pixel_3_0 Has PRES False +struct PS_Array_Shader_19_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_19(PS_Array_Shader_19_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_20 Pixel_3_0 Has PRES False +struct PS_Array_Shader_20_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_20(PS_Array_Shader_20_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s1 + temp0 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, v6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r2 + temp0.xyz = temp0.xyz + temp2.xyz; + // texld r2, v2, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mad r1.xyz, r0, -r2, r1 + temp1.xyz = temp0.xyz * -temp2.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r0.w, r1, r0 + temp0.xyz = temp0.www * temp1.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_21 Pixel_3_0 Has PRES False +struct PS_Array_Shader_21_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_21(PS_Array_Shader_21_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_22 Pixel_3_0 Has PRES False +struct PS_Array_Shader_22_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_22(PS_Array_Shader_22_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_23 Pixel_3_0 Has PRES False +struct PS_Array_Shader_23_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_23(PS_Array_Shader_23_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_24 Pixel_3_0 Has PRES False +struct PS_Array_Shader_24_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_24(PS_Array_Shader_24_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_25 Pixel_3_0 Has PRES False +struct PS_Array_Shader_25_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_25(PS_Array_Shader_25_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_26 Pixel_3_0 Has PRES False +struct PS_Array_Shader_26_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_26(PS_Array_Shader_26_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v6 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_27 Pixel_3_0 Has PRES False +struct PS_Array_Shader_27_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_27(PS_Array_Shader_27_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_28 Pixel_3_0 Has PRES False +struct PS_Array_Shader_28_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_28(PS_Array_Shader_28_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_29 Pixel_3_0 Has PRES False +struct PS_Array_Shader_29_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_29(PS_Array_Shader_29_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 4, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v6 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, c0.y + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_30 Pixel_3_0 Has PRES False +struct PS_Array_Shader_30_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_30(PS_Array_Shader_30_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_31 Pixel_3_0 Has PRES False +struct PS_Array_Shader_31_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_31(PS_Array_Shader_31_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_32 Pixel_3_0 Has PRES False +struct PS_Array_Shader_32_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_32(PS_Array_Shader_32_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s1 + temp0 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v5 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, v6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r2 + temp0.xyz = temp0.xyz + temp2.xyz; + // texld r2, v2, s0 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.x + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mad r1.xyz, r0, -r2, r1 + temp1.xyz = temp0.xyz * -temp2.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r0.w, r1, r0 + temp0.xyz = temp0.www * temp1.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_33 Pixel_3_0 Has PRES False +struct PS_Array_Shader_33_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_33(PS_Array_Shader_33_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord5 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v4 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_34 Pixel_3_0 Has PRES False +struct PS_Array_Shader_34_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_34(PS_Array_Shader_34_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_35 Pixel_3_0 Has PRES False +struct PS_Array_Shader_35_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_35(PS_Array_Shader_35_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // add r0.xyz, r0, v4 + temp0.xyz = temp0.xyz + i.texcoord5.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, v5 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // mad r0.xyz, r1, r0.w, r0 + temp0.xyz = temp1.xyz * temp0.www + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_36 Pixel_3_0 Has PRES False +struct PS_Array_Shader_36_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_36(PS_Array_Shader_36_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_37 Pixel_3_0 Has PRES False +struct PS_Array_Shader_37_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_37(PS_Array_Shader_37_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_38 Pixel_3_0 Has PRES False +struct PS_Array_Shader_38_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_38(PS_Array_Shader_38_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_39 Pixel_3_0 Has PRES False +struct PS_Array_Shader_39_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_39(PS_Array_Shader_39_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_40 Pixel_3_0 Has PRES False +struct PS_Array_Shader_40_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_40(PS_Array_Shader_40_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_41 Pixel_3_0 Has PRES False +struct PS_Array_Shader_41_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_41(PS_Array_Shader_41_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // def c1, 4, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, c1.x + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_42 Pixel_3_0 Has PRES False +struct PS_Array_Shader_42_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_42(PS_Array_Shader_42_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_43 Pixel_3_0 Has PRES False +struct PS_Array_Shader_43_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_43(PS_Array_Shader_43_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_44 Pixel_3_0 Has PRES False +struct PS_Array_Shader_44_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_44(PS_Array_Shader_44_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.w + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_45 Pixel_3_0 Has PRES False +struct PS_Array_Shader_45_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_45(PS_Array_Shader_45_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_46 Pixel_3_0 Has PRES False +struct PS_Array_Shader_46_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_46(PS_Array_Shader_46_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_47 Pixel_3_0 Has PRES False +struct PS_Array_Shader_47_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_47(PS_Array_Shader_47_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0.x, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0.x, v1 + temp0.xyz = temp2.xyz * temp0.xxx + i.color1.xyz; + // mov r1.w, v0.w + temp1.w = i.color.w; + // texld r2, v2, s1 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.w + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mad r0.xyz, r0, r1.w, r1 + temp0.xyz = temp0.xyz * temp1.www + temp1.xyz; + // mov oC0.w, r1.w + out_color.w = temp1.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_48 Pixel_3_0 Has PRES False +struct PS_Array_Shader_48_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_48(PS_Array_Shader_48_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_49 Pixel_3_0 Has PRES False +struct PS_Array_Shader_49_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_49(PS_Array_Shader_49_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_50 Pixel_3_0 Has PRES False +struct PS_Array_Shader_50_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_50(PS_Array_Shader_50_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_51 Pixel_3_0 Has PRES False +struct PS_Array_Shader_51_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_51(PS_Array_Shader_51_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_52 Pixel_3_0 Has PRES False +struct PS_Array_Shader_52_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_52(PS_Array_Shader_52_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_53 Pixel_3_0 Has PRES False +struct PS_Array_Shader_53_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_53(PS_Array_Shader_53_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // def c1, 4, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, c1.x + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_54 Pixel_3_0 Has PRES False +struct PS_Array_Shader_54_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_54(PS_Array_Shader_54_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_55 Pixel_3_0 Has PRES False +struct PS_Array_Shader_55_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_55(PS_Array_Shader_55_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_56 Pixel_3_0 Has PRES False +struct PS_Array_Shader_56_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_56(PS_Array_Shader_56_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.w + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_57 Pixel_3_0 Has PRES False +struct PS_Array_Shader_57_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_57(PS_Array_Shader_57_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_58 Pixel_3_0 Has PRES False +struct PS_Array_Shader_58_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_58(PS_Array_Shader_58_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_59 Pixel_3_0 Has PRES False +struct PS_Array_Shader_59_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_59(PS_Array_Shader_59_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0.x, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0.x, v1 + temp0.xyz = temp2.xyz * temp0.xxx + i.color1.xyz; + // mov r1.w, v0.w + temp1.w = i.color.w; + // texld r2, v2, s1 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.w + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mad r0.xyz, r0, r1.w, r1 + temp0.xyz = temp0.xyz * temp1.www + temp1.xyz; + // mov oC0.w, r1.w + out_color.w = temp1.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_60 Pixel_3_0 Has PRES False +struct PS_Array_Shader_60_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_60(PS_Array_Shader_60_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_61 Pixel_3_0 Has PRES False +struct PS_Array_Shader_61_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_61(PS_Array_Shader_61_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_62 Pixel_3_0 Has PRES False +struct PS_Array_Shader_62_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_62(PS_Array_Shader_62_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_63 Pixel_3_0 Has PRES False +struct PS_Array_Shader_63_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_63(PS_Array_Shader_63_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_64 Pixel_3_0 Has PRES False +struct PS_Array_Shader_64_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_64(PS_Array_Shader_64_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_65 Pixel_3_0 Has PRES False +struct PS_Array_Shader_65_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_65(PS_Array_Shader_65_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // def c1, 4, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, c1.x + temp0.xyz = temp0.xyz * float3(4, 4, 4); + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_66 Pixel_3_0 Has PRES False +struct PS_Array_Shader_66_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_66(PS_Array_Shader_66_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_67 Pixel_3_0 Has PRES False +struct PS_Array_Shader_67_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_67(PS_Array_Shader_67_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_68 Pixel_3_0 Has PRES False +struct PS_Array_Shader_68_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_68(PS_Array_Shader_68_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord1 v3.xy + // dcl_texcoord3 v4.xy + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v5 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v5, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v5.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v6.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v7 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // texld r1, v3, s2 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.w + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r3.xyz, r3, c0.w + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r3.x + temp1.x = exp2(temp3.x); + // exp r1.y, r3.y + temp1.y = exp2(temp3.y); + // exp r1.z, r3.z + temp1.z = exp2(temp3.z); + // mad r2.xyz, r0, -r1, r2 + temp2.xyz = temp0.xyz * -temp1.xyz + temp2.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0.w, r2, r0 + temp0.xyz = temp0.www * temp2.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v4, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_69 Pixel_3_0 Has PRES False +struct PS_Array_Shader_69_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_69(PS_Array_Shader_69_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0.25, 0 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord3 v2.xy + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xyz + // dcl_texcoord6 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v4.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Array_Shader_70 Pixel_3_0 Has PRES False +struct PS_Array_Shader_70_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_70(PS_Array_Shader_70_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.yzw, v5.xxyz, r0.x, r1.xxyz + temp0.yzw = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r1.xyz, v6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r0.x, v1 + temp1.xyz = temp1.xyz * temp0.xxx + i.color1.xyz; + // add r0.xyz, r0.yzww, r1 + temp0.xyz = temp0.yzw + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.w + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_71 Pixel_3_0 Has PRES False +struct PS_Array_Shader_71_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_71(PS_Array_Shader_71_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 1, 0, 0.25, 2.2 + // dcl_color v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord3 v3.xy + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.x, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.z + temp0.x = temp0.x * float1(0.25); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, v5, r0.x, r1 + temp1.xyz = i.texcoord5.xyz * temp0.xxx + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord6.xyz; + // mad r0.xyz, r2, r0.x, v1 + temp0.xyz = temp2.xyz * temp0.xxx + i.color1.xyz; + // mov r1.w, v0.w + temp1.w = i.color.w; + // texld r2, v2, s1 + temp2 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r3.xyz, r3, c0.w + temp3.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r3.x + temp2.x = exp2(temp3.x); + // exp r2.y, r3.y + temp2.y = exp2(temp3.y); + // exp r2.z, r3.z + temp2.z = exp2(temp3.z); + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mad r0.xyz, r0, r1.w, r1 + temp0.xyz = temp0.xyz * temp1.www + temp1.xyz; + // mov oC0.w, r1.w + out_color.w = temp1.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // texld r1, v3, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[72] = { + compile ps_3_0 PS_Array_Shader_0(), // 117 + compile ps_3_0 PS_Array_Shader_1(), // 118 + compile ps_3_0 PS_Array_Shader_2(), // 119 + compile ps_3_0 PS_Array_Shader_3(), // 120 + compile ps_3_0 PS_Array_Shader_4(), // 121 + compile ps_3_0 PS_Array_Shader_5(), // 122 + compile ps_3_0 PS_Array_Shader_6(), // 123 + compile ps_3_0 PS_Array_Shader_7(), // 124 + compile ps_3_0 PS_Array_Shader_8(), // 125 + compile ps_3_0 PS_Array_Shader_9(), // 126 + compile ps_3_0 PS_Array_Shader_10(), // 127 + compile ps_3_0 PS_Array_Shader_11(), // 128 + compile ps_3_0 PS_Array_Shader_12(), // 129 + compile ps_3_0 PS_Array_Shader_13(), // 130 + compile ps_3_0 PS_Array_Shader_14(), // 131 + compile ps_3_0 PS_Array_Shader_15(), // 132 + compile ps_3_0 PS_Array_Shader_16(), // 133 + compile ps_3_0 PS_Array_Shader_17(), // 134 + compile ps_3_0 PS_Array_Shader_18(), // 135 + compile ps_3_0 PS_Array_Shader_19(), // 136 + compile ps_3_0 PS_Array_Shader_20(), // 137 + compile ps_3_0 PS_Array_Shader_21(), // 138 + compile ps_3_0 PS_Array_Shader_22(), // 139 + compile ps_3_0 PS_Array_Shader_23(), // 140 + compile ps_3_0 PS_Array_Shader_24(), // 141 + compile ps_3_0 PS_Array_Shader_25(), // 142 + compile ps_3_0 PS_Array_Shader_26(), // 143 + compile ps_3_0 PS_Array_Shader_27(), // 144 + compile ps_3_0 PS_Array_Shader_28(), // 145 + compile ps_3_0 PS_Array_Shader_29(), // 146 + compile ps_3_0 PS_Array_Shader_30(), // 147 + compile ps_3_0 PS_Array_Shader_31(), // 148 + compile ps_3_0 PS_Array_Shader_32(), // 149 + compile ps_3_0 PS_Array_Shader_33(), // 150 + compile ps_3_0 PS_Array_Shader_34(), // 151 + compile ps_3_0 PS_Array_Shader_35(), // 152 + compile ps_3_0 PS_Array_Shader_36(), // 153 + compile ps_3_0 PS_Array_Shader_37(), // 154 + compile ps_3_0 PS_Array_Shader_38(), // 155 + compile ps_3_0 PS_Array_Shader_39(), // 156 + compile ps_3_0 PS_Array_Shader_40(), // 157 + compile ps_3_0 PS_Array_Shader_41(), // 158 + compile ps_3_0 PS_Array_Shader_42(), // 159 + compile ps_3_0 PS_Array_Shader_43(), // 160 + compile ps_3_0 PS_Array_Shader_44(), // 161 + compile ps_3_0 PS_Array_Shader_45(), // 162 + compile ps_3_0 PS_Array_Shader_46(), // 163 + compile ps_3_0 PS_Array_Shader_47(), // 164 + compile ps_3_0 PS_Array_Shader_48(), // 165 + compile ps_3_0 PS_Array_Shader_49(), // 166 + compile ps_3_0 PS_Array_Shader_50(), // 167 + compile ps_3_0 PS_Array_Shader_51(), // 168 + compile ps_3_0 PS_Array_Shader_52(), // 169 + compile ps_3_0 PS_Array_Shader_53(), // 170 + compile ps_3_0 PS_Array_Shader_54(), // 171 + compile ps_3_0 PS_Array_Shader_55(), // 172 + compile ps_3_0 PS_Array_Shader_56(), // 173 + compile ps_3_0 PS_Array_Shader_57(), // 174 + compile ps_3_0 PS_Array_Shader_58(), // 175 + compile ps_3_0 PS_Array_Shader_59(), // 176 + compile ps_3_0 PS_Array_Shader_60(), // 177 + compile ps_3_0 PS_Array_Shader_61(), // 178 + compile ps_3_0 PS_Array_Shader_62(), // 179 + compile ps_3_0 PS_Array_Shader_63(), // 180 + compile ps_3_0 PS_Array_Shader_64(), // 181 + compile ps_3_0 PS_Array_Shader_65(), // 182 + compile ps_3_0 PS_Array_Shader_66(), // 183 + compile ps_3_0 PS_Array_Shader_67(), // 184 + compile ps_3_0 PS_Array_Shader_68(), // 185 + compile ps_3_0 PS_Array_Shader_69(), // 186 + compile ps_3_0 PS_Array_Shader_70(), // 187 + compile ps_3_0 PS_Array_Shader_71(), // 188 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c17 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c15 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c16, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c17.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.x + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c19.x + temp2.x = Opacity.x; + // mul r2.x, r2.x, c1.x + temp2.x = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r2.x + o.color.w = temp6.w * temp2.x; + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c16.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c20.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r1.xxyw, c21.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c21 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c22, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c17 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c15 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c16, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c19.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c17.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c16 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.w + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c20.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c21.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c21 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c22.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c22, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c17 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c15 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c16, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c19.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c18.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r0.yyzw + temp1.xzw = temp1.zzz * temp0.yzw; + // mul r1.xzw, r1, c17.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.y, r0 + temp0.yzw = temp1.yyy * temp0.yzw; + // mul r0.yzw, r0, c16.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // add r0.yz, r2.xxyw, -v7.xxyw + temp0.yz = temp2.xy + -i.texcoord1.xy; + // mad oT1.xy, c20.x, r0.yzzw, v7 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r2.xxyw, c21.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c21 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c22.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_3 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_3_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_3_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_3_Output VS_M_Array_Shader_3(VS_M_Array_Shader_3_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_3_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c18.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.x + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c20.x + temp2.x = Opacity.x; + // mul r2.x, r2.x, c1.x + temp2.x = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r2.x + o.color.w = temp6.w * temp2.x; + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c21.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r1.xxyw, c23.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v2, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT2.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_4 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_4_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_4_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_4_Output VS_M_Array_Shader_4(VS_M_Array_Shader_4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_4_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c24, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c20.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c18.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c17 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.w + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c21.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c23.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c23 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c24.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v3, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_5 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_5_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_5_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_5_Output VS_M_Array_Shader_5(VS_M_Array_Shader_5_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_5_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c24, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c20.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r0.yyzw + temp1.xzw = temp1.zzz * temp0.yzw; + // mul r1.xzw, r1, c18.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.y, r0 + temp0.yzw = temp1.yyy * temp0.yzw; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // add r0.yz, r2.xxyw, -v7.xxyw + temp0.yz = temp2.xy + -i.texcoord1.xy; + // mad oT1.xy, c21.x, r0.yzzw, v7 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r2.xxyw, c23.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c24.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c22 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v6, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_6 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_6_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_6_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_6_Output VS_M_Array_Shader_6(VS_M_Array_Shader_6_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_6_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c23 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c21 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c22, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c23.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.x + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c25.x + temp2.x = Opacity.x; + // mul r2.x, r2.x, c1.x + temp2.x = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r2.x + o.color.w = temp6.w * temp2.x; + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c22.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c26.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r1.xxyw, c27.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c27 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v2, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT2.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_7 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_7_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_7_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_7_Output VS_M_Array_Shader_7(VS_M_Array_Shader_7_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_7_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c28, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c23 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c21 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c22, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c25.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c23.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c22 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.w + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c26.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c27.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c27 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c28.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v3, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_8 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_8_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_8_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_8_Output VS_M_Array_Shader_8(VS_M_Array_Shader_8_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 10 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_8_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c28, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c23 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c21 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c22, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c25.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c24.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r0.yyzw + temp1.xzw = temp1.zzz * temp0.yzw; + // mul r1.xzw, r1, c23.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.y, r0 + temp0.yzw = temp1.yyy * temp0.yzw; + // mul r0.yzw, r0, c22.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // add r0.yz, r2.xxyw, -v7.xxyw + temp0.yz = temp2.xy + -i.texcoord1.xy; + // mad oT1.xy, c26.x, r0.yzzw, v7 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r2.xxyw, c27.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c27 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c28.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v6, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_9 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_9_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_9_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_9_Output VS_M_Array_Shader_9(VS_M_Array_Shader_9_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_9_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c18.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.x + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c20.x + temp2.x = Opacity.x; + // mul r2.x, r2.x, c1.x + temp2.x = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r2.x + o.color.w = temp6.w * temp2.x; + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // lrp r0.yz, c21.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c22 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c15 + o.texcoord1 = temp0.yzzw * temp2 + expr15; + // add r0.yz, r1.xxyw, c23.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_10 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_10_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_10_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_10_Output VS_M_Array_Shader_10(VS_M_Array_Shader_10_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_10_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c24, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c20.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c18.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c17 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.w + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c21.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c22 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c15 + o.texcoord1 = temp1 * temp2 + expr15; + // add r1.xy, r0, c23.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c23 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c24.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_11 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_11_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_11_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_11_Output VS_M_Array_Shader_11(VS_M_Array_Shader_11_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c5.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_11_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c24, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c20.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r0.yyzw + temp1.xzw = temp1.zzz * temp0.yzw; + // mul r1.xzw, r1, c18.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.y, r0 + temp0.yzw = temp1.yyy * temp0.yzw; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // lrp r0.yz, c21.x, r2.xxyw, v7.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp2.xy, UseWorldCords.xx); + // mov r1.xy, c22 + temp1.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r1, c15 + o.texcoord1 = temp0.yzzw * temp1 + expr15; + // add r0.yz, r2.xxyw, c23.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c24.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_12 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_12_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_12_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_12_Output VS_M_Array_Shader_12(VS_M_Array_Shader_12_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c6.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + // mul c16.xy, c6.x, c5.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_12_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c19.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.x + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c21.x + temp2.x = Opacity.x; + // mul r2.x, r2.x, c1.x + temp2.x = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r2.x + o.color.w = temp6.w * temp2.x; + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // lrp r0.yz, c22.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c16 + o.texcoord1 = temp0.yzzw * temp2 + expr16; + // add r0.yz, r1.xxyw, c25.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c25 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c23 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v2, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT2.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_13 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_13_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_13_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_13_Output VS_M_Array_Shader_13(VS_M_Array_Shader_13_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c6.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + // mul c16.xy, c6.x, c5.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_13_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c26, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c21.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c19.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.w + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c22.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c16 + o.texcoord1 = temp1 * temp2 + expr16; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c26.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c23 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v3, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_14 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_14_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_14_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_14_Output VS_M_Array_Shader_14(VS_M_Array_Shader_14_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c15.xy, c6.x, c4.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + // mul c16.xy, c6.x, c5.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_14_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c26, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c21.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r0.yyzw + temp1.xzw = temp1.zzz * temp0.yzw; + // mul r1.xzw, r1, c19.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.y, r0 + temp0.yzw = temp1.yyy * temp0.yzw; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // lrp r0.yz, c22.x, r2.xxyw, v7.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp2.xy, UseWorldCords.xx); + // mov r1.xy, c24 + temp1.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r1, c16 + o.texcoord1 = temp0.yzzw * temp1 + expr16; + // add r0.yz, r2.xxyw, c25.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c25 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c26.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c23 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v6, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_15 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_15_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_15_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_15_Output VS_M_Array_Shader_15(VS_M_Array_Shader_15_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + // mul c21.xy, c6.x, c5.zw + expr21.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_15_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, -2, 3 + // def c2, 0.5, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.x + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // dp3 r3.w, r4, r0.yzww + temp3.w = dot(temp4.xyz, temp0.yzw); + // abs r3.w, r3.w + temp3.w = abs(temp3.w); + // mul r3.w, r3.w, c11.x + temp3.w = temp3.w * expr11.x; + // max r3.w, r3.w, c0.y + temp3.w = max(temp3.w, float1(0)); + // min r3.w, r3.w, c0.x + temp3.w = min(temp3.w, float1(1)); + // mul r4.x, r3.w, r3.w + temp4.x = temp3.w * temp3.w; + // mad r3.w, r3.w, c0.z, c0.w + temp3.w = temp3.w * float1(-2) + float1(3); + // mul r3.w, r4.x, r3.w + temp3.w = temp4.x * temp3.w; + // mov r4.w, v4.w + temp4.w = i.color.w; + // mul r5, r3.w, v4 + temp5 = temp3.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v4 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.x + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c24.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.x + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c26.x + temp2.x = Opacity.x; + // mul r2.x, r2.x, c1.x + temp2.x = temp2.x * OpacityOverride.x; + // mul oD0.w, r6.w, r2.x + o.color.w = temp6.w * temp2.x; + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c23.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.x + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // lrp r0.yz, c27.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c28 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c21 + o.texcoord1 = temp0.yzzw * temp2 + expr21; + // add r0.yz, r1.xxyw, c29.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c29 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r2.x, c2.yyzw + o.texcoord4.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v2, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT2.xy, c0.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_16 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_16_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_16_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_16_Output VS_M_Array_Shader_16(VS_M_Array_Shader_16_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + // mul c21.xy, c6.x, c5.zw + expr21.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_16_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c2.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c2.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c11.x + temp2.w = temp2.w * expr11.x; + // max r2.w, r2.w, c2.z + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c2.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c0.x, c0.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v5.w + temp4.w = i.color.w; + // mul r5, r2.w, v5 + temp5 = temp2.w * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v5 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c2.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c26.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c24.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c23 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.w + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c27.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c28 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c21 + o.texcoord1 = temp1 * temp2 + expr21; + // add r1.xy, r0, c29.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c29 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c30.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v3, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_17 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_17_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_17_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_17_Output VS_M_Array_Shader_17(VS_M_Array_Shader_17_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 3 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 20 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // rcp c11.x, c2.x + expr11.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c13.x, r0.x, r1.x + expr13.x = temp0.x >= temp1.x; + // mul c14.xyz, c1.x, c0.xyz + expr14.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c20.xy, r0.x, r0.yz + expr20.xy = temp0.x * temp0.yz; + // mul c21.xy, c6.x, c5.zw + expr21.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_17_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, -2, 3, 0, 0 + // def c2, 1, -1, 0, 0.5 + // def c30, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r0.yzw, r0, c129[a0.x].xxyz + temp0.yzw = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c2.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r2.xyz, r0.yzww, v1.x, r2 + temp2.xyz = temp0.yzw * i.blendweight.xxx + temp2.xyz; + // mul r3, v5.zxyy, c128[a0.y].yzxy + temp3 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r3, c128[a0.y].wwwx, v5.xyzx, r3 + temp3 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp3; + // mul r4, v5.yzxz, c128[a0.y].zxyz + temp4 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r3, r3, c2.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r0.yzw, r3.w, c128[a0.y].xxyz + temp0.yzw = temp3.www * WorldBones[0 + addr0.y].xyz; + // mad r0.yzw, c128[a0.y].w, r3.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.y].www * temp3.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.y].xyzx, r3.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.y].yzx * temp3.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.y].xzxy, -r3.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.y].zxy * -temp3.yzx + temp0.yzw; + // mul r0.yzw, r0, v1.y + temp0.yzw = temp0.yzw * i.blendweight.yyy; + // mad r0.yzw, r1.xxyz, v1.x, r0 + temp0.yzw = temp1.xyz * i.blendweight.xxx + temp0.yzw; + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c2.z + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c2.z + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c2.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0.yzww, r7 + temp3.y = dot(temp0.yzw, temp7.xyz); + // dp3 r3.x, r0.yzww, c6[a0.x] + temp3.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c2.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r1, r1.w + temp3.xyz = temp1.xyz * temp1.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c11.x + temp3.x = temp3.x * expr11.x; + // max r3.x, r3.x, c2.z + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c2.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c0.x, c0.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r0.x, r0.x, r3.x + temp0.x = temp0.x * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c14 + temp3.xyz = temp3.xyz * temp5.xyz + expr14.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mov r4.w, v8.w + temp4.w = i.color.w; + // mul r5, r0.x, v8 + temp5 = temp0.x * i.color; + // mov r4.xyz, r5 + temp4.xyz = temp5.xyz; + // mov r5.xyz, v8 + temp5.xyz = i.color.xyz; + // lrp r6, c13.x, r4, r5 + temp6 = lerp(temp5, temp4, expr13.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r2.w, c2.x + temp2.w = float1(1); + // dp4 r0.x, r2, c116 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c26.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r0.yyzw + temp1.xzw = temp1.zzz * temp0.yzw; + // mul r1.xzw, r1, c24.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.w + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r1.y, r0 + temp0.yzw = temp1.yyy * temp0.yzw; + // mul r0.yzw, r0, c23.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r6.xxyz, r0 + temp0.yzw = temp6.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c2.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // lrp r0.yz, c27.x, r2.xxyw, v7.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp2.xy, UseWorldCords.xx); + // mov r1.xy, c28 + temp1.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r1, c21 + o.texcoord1 = temp0.yzzw * temp1 + expr21; + // add r0.yz, r2.xxyw, c29.xzww + temp0.yz = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c29 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r2, c113 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r2, c114 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r2, c115 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c30.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v6, c20 + o.texcoord = i.texcoord + expr20; + // mov oD1.w, c2.x + o.color1.w = float1(1); + // mov oT2.xy, c2.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_18 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_18_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_18_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_18_Output VS_M_Array_Shader_18(VS_M_Array_Shader_18_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c4.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_18_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float addr0; + float3 temp8; + // def c2, -2, 3, 0, 0 + // def c24, 1, 0, 0.25, 0.5 + // def c25, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c24.xxxy, c24.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c24.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // mov r4.zw, c19.x + temp4.zw = Shininess.x; + // mov r3.yzw, c24.y + temp3.yzw = float3(0, 0, 0); + // mov r5, c24.yyyx + temp5 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r6.x, r5.w, r5.w + temp6.x = temp5.w + temp5.w; + // mova a0.x, r6.x + addr0.x = temp6.x; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.y, r0.yzww, r7 + temp4.y = dot(temp0.yzw, temp7.xyz); + // dp3 r4.x, r0.yzww, c6[a0.x] + temp4.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r4 + temp6 = lit(temp4.x, temp4.y, temp4.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r3.yzw, c5[a0.x].xxyz, r6.y, r3 + temp3.yzw = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp3.yzw; + // add r5.w, r5.w, c24.x + temp5.w = temp5.w + float1(1); + // endrep + } + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mov r6.xyz, c16 + temp6.xyz = ColorAmbient.xyz; + // mad r4.xyz, r4, r6, c15 + temp4.xyz = temp4.xyz * temp6.xyz + expr15.xyz; + // mad r3.yzw, r3, c17.xxyz, r4.xxyz + temp3.yzw = temp3.yzw * ColorDiffuse.xyz + temp4.xyz; + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c24.y + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c24.x + temp3.x = min(temp3.x, float1(1)); + // mul r4.x, r3.x, r3.x + temp4.x = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r4.x, r3.x + temp3.x = temp4.x * temp3.x; + // mul r4.w, r3.x, v4.w + temp4.w = temp3.x * i.color.w; + // mov r6.w, v4.w + temp6.w = i.color.w; + // mov r7.xz, c24 + temp7.xz = float2(1, 0.25); + // lrp r8.xyz, r7.z, r7.x, c0 + temp8.xyz = lerp(RecolorColor.xyz, temp7.xxx, temp7.zzz); + // mul r7.xyz, r8, v4 + temp7.xyz = temp8.xyz * i.color.xyz; + // mad r8.xyz, r7, c11.x, -r7 + temp8.xyz = temp7.xyz * expr11.xxx + -temp7.xyz; + // mad r4.xyz, c21.x, r8, r7 + temp4.xyz = HouseColorPulse.xxx * temp8.xyz + temp7.xyz; + // mul r6.xyz, r3.x, r4 + temp6.xyz = temp3.xxx * temp4.xyz; + // lrp r7, c14.x, r6, r4 + temp7 = lerp(temp4, temp6, expr14.x); + // mul r3.xyz, r3.yzww, r7 + temp3.xyz = temp3.yzw * temp7.xyz; + // mul oD0.xyz, r3, c24.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c24.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c18.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c24.w + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c17.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r7.xxyz, r0 + temp0.yzw = temp7.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c24.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c20.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r7.w, r0.y + o.color.w = temp7.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c22.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r1.xxyw, c23.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c23 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c25.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // mov oD1.w, c24.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, c24.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_19 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_19_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_19_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_19_Output VS_M_Array_Shader_19(VS_M_Array_Shader_19_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c4.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_19_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c24, 1, -1, 0.25, 0 + // def c25, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c24.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c24.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c24.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c24.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c24.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c24.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c24.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c24.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c24 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c21.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c24.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c20.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c18.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.z + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c17 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c22.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c23.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c23 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c25.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c24.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // mov oT2.xy, c24.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_20 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_20_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_20_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_20_Output VS_M_Array_Shader_20(VS_M_Array_Shader_20_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c4.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + } + + VS_M_Array_Shader_20_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c24, 1, -1, 0.25, 0 + // def c25, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c24.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c24.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c24.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c24.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // mov r4.xyz, c24.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c24.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c24.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c24.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c18 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c24.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c24.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c16 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c17, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c24 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c21.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c24.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c20.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c19.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c3 + temp1.xyz = temp1.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r1.xyyz + temp2.xzw = temp2.zzz * temp1.xyz; + // mul r2.xzw, r2, c18.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.z + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.y, r1 + temp1.xyz = temp2.yyy * temp1.xyz; + // mul r1.xyz, r1, c17 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c22.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c23.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c23 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c25.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c24.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mov oT2.xy, c24.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_21 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_21_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_21_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_21_Output VS_M_Array_Shader_21(VS_M_Array_Shader_21_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_21_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float addr0; + float3 temp8; + // def c2, -2, 3, 0, 0 + // def c26, 1, 0, 0.25, 0.5 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c26.xxxy, c26.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c26.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // mov r4.zw, c20.x + temp4.zw = Shininess.x; + // mov r3.yzw, c26.y + temp3.yzw = float3(0, 0, 0); + // mov r5, c26.yyyx + temp5 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r6.x, r5.w, r5.w + temp6.x = temp5.w + temp5.w; + // mova a0.x, r6.x + addr0.x = temp6.x; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.y, r0.yzww, r7 + temp4.y = dot(temp0.yzw, temp7.xyz); + // dp3 r4.x, r0.yzww, c6[a0.x] + temp4.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r4 + temp6 = lit(temp4.x, temp4.y, temp4.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r3.yzw, c5[a0.x].xxyz, r6.y, r3 + temp3.yzw = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp3.yzw; + // add r5.w, r5.w, c26.x + temp5.w = temp5.w + float1(1); + // endrep + } + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mov r6.xyz, c17 + temp6.xyz = ColorAmbient.xyz; + // mad r4.xyz, r4, r6, c15 + temp4.xyz = temp4.xyz * temp6.xyz + expr15.xyz; + // mad r3.yzw, r3, c18.xxyz, r4.xxyz + temp3.yzw = temp3.yzw * ColorDiffuse.xyz + temp4.xyz; + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c26.y + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c26.x + temp3.x = min(temp3.x, float1(1)); + // mul r4.x, r3.x, r3.x + temp4.x = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r4.x, r3.x + temp3.x = temp4.x * temp3.x; + // mul r4.w, r3.x, v4.w + temp4.w = temp3.x * i.color.w; + // mov r6.w, v4.w + temp6.w = i.color.w; + // mov r7.xz, c26 + temp7.xz = float2(1, 0.25); + // lrp r8.xyz, r7.z, r7.x, c0 + temp8.xyz = lerp(RecolorColor.xyz, temp7.xxx, temp7.zzz); + // mul r7.xyz, r8, v4 + temp7.xyz = temp8.xyz * i.color.xyz; + // mad r8.xyz, r7, c11.x, -r7 + temp8.xyz = temp7.xyz * expr11.xxx + -temp7.xyz; + // mad r4.xyz, c22.x, r8, r7 + temp4.xyz = HouseColorPulse.xxx * temp8.xyz + temp7.xyz; + // mul r6.xyz, r3.x, r4 + temp6.xyz = temp3.xxx * temp4.xyz; + // lrp r7, c14.x, r6, r4 + temp7 = lerp(temp4, temp6, expr14.x); + // mul r3.xyz, r3.yzww, r7 + temp3.xyz = temp3.yzw * temp7.xyz; + // mul oD0.xyz, r3, c26.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c26.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c19.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c26.w + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r7.xxyz, r0 + temp0.yzw = temp7.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c26.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c21.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r7.w, r0.y + o.color.w = temp7.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c23.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r1.xxyw, c25.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c25 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c27.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // mov r0.xy, c24 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v2, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c26.x + o.color1.w = float1(1); + // mov oT2.xy, c26.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_22 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_22_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_22_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_22_Output VS_M_Array_Shader_22(VS_M_Array_Shader_22_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_22_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c26, 1, -1, 0.25, 0 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c26.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c26.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c26.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c26.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c26.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c26.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c26.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c26.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c26 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c26.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c21.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c19.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.z + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c23.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c27.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c24 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v3, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c26.x + o.color1.w = float1(1); + // mov oT2.xy, c26.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_23 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_23_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_23_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_23_Output VS_M_Array_Shader_23(VS_M_Array_Shader_23_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_M_Array_Shader_23_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c26, 1, -1, 0.25, 0 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c26.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c26.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c26.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c26.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c26.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c26.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c26.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c26.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c26.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c26.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c26 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c26.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c21.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c3 + temp1.xyz = temp1.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r1.xyyz + temp2.xzw = temp2.zzz * temp1.xyz; + // mul r2.xzw, r2, c19.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.z + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.y, r1 + temp1.xyz = temp2.yyy * temp1.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c23.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c27.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c24 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v6, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c26.x + o.color1.w = float1(1); + // mov oT2.xy, c26.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_24 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_24_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_24_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_24_Output VS_M_Array_Shader_24(VS_M_Array_Shader_24_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_24_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float addr0; + float3 temp8; + // def c2, -2, 3, 0, 0 + // def c30, 1, 0, 0.25, 0.5 + // def c31, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c30.xxxy, c30.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c30.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // mov r4.zw, c25.x + temp4.zw = Shininess.x; + // mov r3.yzw, c30.y + temp3.yzw = float3(0, 0, 0); + // mov r5, c30.yyyx + temp5 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r6.x, r5.w, r5.w + temp6.x = temp5.w + temp5.w; + // mova a0.x, r6.x + addr0.x = temp6.x; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.y, r0.yzww, r7 + temp4.y = dot(temp0.yzw, temp7.xyz); + // dp3 r4.x, r0.yzww, c6[a0.x] + temp4.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r4 + temp6 = lit(temp4.x, temp4.y, temp4.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r3.yzw, c5[a0.x].xxyz, r6.y, r3 + temp3.yzw = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp3.yzw; + // add r5.w, r5.w, c30.x + temp5.w = temp5.w + float1(1); + // endrep + } + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mov r6.xyz, c22 + temp6.xyz = ColorAmbient.xyz; + // mad r4.xyz, r4, r6, c15 + temp4.xyz = temp4.xyz * temp6.xyz + expr15.xyz; + // mad r3.yzw, r3, c23.xxyz, r4.xxyz + temp3.yzw = temp3.yzw * ColorDiffuse.xyz + temp4.xyz; + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c30.y + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c30.x + temp3.x = min(temp3.x, float1(1)); + // mul r4.x, r3.x, r3.x + temp4.x = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r4.x, r3.x + temp3.x = temp4.x * temp3.x; + // mul r4.w, r3.x, v4.w + temp4.w = temp3.x * i.color.w; + // mov r6.w, v4.w + temp6.w = i.color.w; + // mov r7.xz, c30 + temp7.xz = float2(1, 0.25); + // lrp r8.xyz, r7.z, r7.x, c0 + temp8.xyz = lerp(RecolorColor.xyz, temp7.xxx, temp7.zzz); + // mul r7.xyz, r8, v4 + temp7.xyz = temp8.xyz * i.color.xyz; + // mad r8.xyz, r7, c11.x, -r7 + temp8.xyz = temp7.xyz * expr11.xxx + -temp7.xyz; + // mad r4.xyz, c27.x, r8, r7 + temp4.xyz = HouseColorPulse.xxx * temp8.xyz + temp7.xyz; + // mul r6.xyz, r3.x, r4 + temp6.xyz = temp3.xxx * temp4.xyz; + // lrp r7, c14.x, r6, r4 + temp7 = lerp(temp4, temp6, expr14.x); + // mul r3.xyz, r3.yzww, r7 + temp3.xyz = temp3.yzw * temp7.xyz; + // mul oD0.xyz, r3, c30.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c30.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c24.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c30.w + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c23.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r7.xxyz, r0 + temp0.yzw = temp7.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c30.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c26.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r7.w, r0.y + o.color.w = temp7.w * temp0.y; + // add r0.yz, r1.xxyw, -v3.xxyw + temp0.yz = temp1.xy + -i.texcoord1.xy; + // mad oT1.xy, c28.x, r0.yzzw, v3 + o.texcoord1 = UseWorldCords.x * temp0.yzzw + i.texcoord1; + // add r0.yz, r1.xxyw, c29.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c29 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c31.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // add oT0.xy, v2, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c30.x + o.color1.w = float1(1); + // mov oT2.xy, c30.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_25 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_25_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_25_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_25_Output VS_M_Array_Shader_25(VS_M_Array_Shader_25_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_25_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c30, 1, -1, 0.25, 0 + // def c31, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c30.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c30.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c30.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c30.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c30.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c30.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c30.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c30.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c30 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c27.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c30.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c26.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c24.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.z + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c23 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v4 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c28.x, r1, v4 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c29.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c29 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c31.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v3, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c30.x + o.color1.w = float1(1); + // mov oT2.xy, c30.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_26 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_26_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_26_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_26_Output VS_M_Array_Shader_26(VS_M_Array_Shader_26_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c5.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + } + + VS_M_Array_Shader_26_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c30, 1, -1, 0.25, 0 + // def c31, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c30.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c30.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c30.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c30.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // mov r4.xyz, c30.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c30.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c30.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c30.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c24 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c30.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c30.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c22 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c23, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c30 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c27.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c30.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c26.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c25.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c3 + temp1.xyz = temp1.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r1.xyyz + temp2.xzw = temp2.zzz * temp1.xyz; + // mul r2.xzw, r2, c24.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.z + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.y, r1 + temp1.xyz = temp2.yyy * temp1.xyz; + // mul r1.xyz, r1, c23 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0, -v7 + temp1.xy = temp0.xy + -i.texcoord1.xy; + // mad oT1.xy, c28.x, r1, v7 + o.texcoord1 = UseWorldCords.x * temp1 + i.texcoord1; + // add r1.xy, r0, c29.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c29 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c31.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v6, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c30.x + o.color1.w = float1(1); + // mov oT2.xy, c30.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_27 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_27_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_27_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_27_Output VS_M_Array_Shader_27(VS_M_Array_Shader_27_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_27_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float addr0; + float3 temp8; + // def c2, -2, 3, 0, 0 + // def c26, 1, 0, 0.25, 0.5 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c26.xxxy, c26.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c26.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // mov r4.zw, c20.x + temp4.zw = Shininess.x; + // mov r3.yzw, c26.y + temp3.yzw = float3(0, 0, 0); + // mov r5, c26.yyyx + temp5 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r6.x, r5.w, r5.w + temp6.x = temp5.w + temp5.w; + // mova a0.x, r6.x + addr0.x = temp6.x; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.y, r0.yzww, r7 + temp4.y = dot(temp0.yzw, temp7.xyz); + // dp3 r4.x, r0.yzww, c6[a0.x] + temp4.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r4 + temp6 = lit(temp4.x, temp4.y, temp4.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r3.yzw, c5[a0.x].xxyz, r6.y, r3 + temp3.yzw = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp3.yzw; + // add r5.w, r5.w, c26.x + temp5.w = temp5.w + float1(1); + // endrep + } + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mov r6.xyz, c17 + temp6.xyz = ColorAmbient.xyz; + // mad r4.xyz, r4, r6, c15 + temp4.xyz = temp4.xyz * temp6.xyz + expr15.xyz; + // mad r3.yzw, r3, c18.xxyz, r4.xxyz + temp3.yzw = temp3.yzw * ColorDiffuse.xyz + temp4.xyz; + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c26.y + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c26.x + temp3.x = min(temp3.x, float1(1)); + // mul r4.x, r3.x, r3.x + temp4.x = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r4.x, r3.x + temp3.x = temp4.x * temp3.x; + // mul r4.w, r3.x, v4.w + temp4.w = temp3.x * i.color.w; + // mov r6.w, v4.w + temp6.w = i.color.w; + // mov r7.xz, c26 + temp7.xz = float2(1, 0.25); + // lrp r8.xyz, r7.z, r7.x, c0 + temp8.xyz = lerp(RecolorColor.xyz, temp7.xxx, temp7.zzz); + // mul r7.xyz, r8, v4 + temp7.xyz = temp8.xyz * i.color.xyz; + // mad r8.xyz, r7, c11.x, -r7 + temp8.xyz = temp7.xyz * expr11.xxx + -temp7.xyz; + // mad r4.xyz, c22.x, r8, r7 + temp4.xyz = HouseColorPulse.xxx * temp8.xyz + temp7.xyz; + // mul r6.xyz, r3.x, r4 + temp6.xyz = temp3.xxx * temp4.xyz; + // lrp r7, c14.x, r6, r4 + temp7 = lerp(temp4, temp6, expr14.x); + // mul r3.xyz, r3.yzww, r7 + temp3.xyz = temp3.yzw * temp7.xyz; + // mul oD0.xyz, r3, c26.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c26.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c19.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c26.w + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c18.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r7.xxyz, r0 + temp0.yzw = temp7.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c26.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c21.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r7.w, r0.y + o.color.w = temp7.w * temp0.y; + // lrp r0.yz, c23.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c16 + o.texcoord1 = temp0.yzzw * temp2 + expr16; + // add r0.yz, r1.xxyw, c25.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c25 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c27.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // mov oD1.w, c26.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // mov oT2.xy, c26.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_28 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_28_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_28_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_28_Output VS_M_Array_Shader_28(VS_M_Array_Shader_28_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_28_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c26, 1, -1, 0.25, 0 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c26.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c26.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c26.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c26.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c26.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c26.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c26.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c26.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c26 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c26.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c21.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c19.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.z + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c23.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c16 + o.texcoord1 = temp1 * temp2 + expr16; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c27.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c26.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // mov oT2.xy, c26.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_29 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_29_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_29_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_29_Output VS_M_Array_Shader_29(VS_M_Array_Shader_29_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c5.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c5.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_29_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c26, 1, -1, 0.25, 0 + // def c27, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c26.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c26.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c26.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c26.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // mov r4.xyz, c26.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c26.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c26.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c26.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c19 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c26.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c26.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c17 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c18, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c26 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c22.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c26.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c21.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c20.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c3 + temp1.xyz = temp1.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r1.xyyz + temp2.xzw = temp2.zzz * temp1.xyz; + // mul r2.xzw, r2, c19.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.z + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.y, r1 + temp1.xyz = temp2.yyy * temp1.xyz; + // mul r1.xyz, r1, c18 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c23.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c24 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c16 + o.texcoord1 = temp1 * temp2 + expr16; + // add r1.xy, r0, c25.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c25 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c27.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c26.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mov oT2.xy, c26.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_30 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_30_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_30_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_30_Output VS_M_Array_Shader_30(VS_M_Array_Shader_30_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c6.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + // mul c17.xy, c6.x, c5.zw + expr17.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_30_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float addr0; + float3 temp8; + // def c2, -2, 3, 0, 0 + // def c28, 1, 0, 0.25, 0.5 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c28.xxxy, c28.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c28.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // mov r4.zw, c21.x + temp4.zw = Shininess.x; + // mov r3.yzw, c28.y + temp3.yzw = float3(0, 0, 0); + // mov r5, c28.yyyx + temp5 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r6.x, r5.w, r5.w + temp6.x = temp5.w + temp5.w; + // mova a0.x, r6.x + addr0.x = temp6.x; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.y, r0.yzww, r7 + temp4.y = dot(temp0.yzw, temp7.xyz); + // dp3 r4.x, r0.yzww, c6[a0.x] + temp4.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r4 + temp6 = lit(temp4.x, temp4.y, temp4.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r3.yzw, c5[a0.x].xxyz, r6.y, r3 + temp3.yzw = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp3.yzw; + // add r5.w, r5.w, c28.x + temp5.w = temp5.w + float1(1); + // endrep + } + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mov r6.xyz, c18 + temp6.xyz = ColorAmbient.xyz; + // mad r4.xyz, r4, r6, c15 + temp4.xyz = temp4.xyz * temp6.xyz + expr15.xyz; + // mad r3.yzw, r3, c19.xxyz, r4.xxyz + temp3.yzw = temp3.yzw * ColorDiffuse.xyz + temp4.xyz; + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c28.y + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c28.x + temp3.x = min(temp3.x, float1(1)); + // mul r4.x, r3.x, r3.x + temp4.x = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r4.x, r3.x + temp3.x = temp4.x * temp3.x; + // mul r4.w, r3.x, v4.w + temp4.w = temp3.x * i.color.w; + // mov r6.w, v4.w + temp6.w = i.color.w; + // mov r7.xz, c28 + temp7.xz = float2(1, 0.25); + // lrp r8.xyz, r7.z, r7.x, c0 + temp8.xyz = lerp(RecolorColor.xyz, temp7.xxx, temp7.zzz); + // mul r7.xyz, r8, v4 + temp7.xyz = temp8.xyz * i.color.xyz; + // mad r8.xyz, r7, c11.x, -r7 + temp8.xyz = temp7.xyz * expr11.xxx + -temp7.xyz; + // mad r4.xyz, c23.x, r8, r7 + temp4.xyz = HouseColorPulse.xxx * temp8.xyz + temp7.xyz; + // mul r6.xyz, r3.x, r4 + temp6.xyz = temp3.xxx * temp4.xyz; + // lrp r7, c14.x, r6, r4 + temp7 = lerp(temp4, temp6, expr14.x); + // mul r3.xyz, r3.yzww, r7 + temp3.xyz = temp3.yzw * temp7.xyz; + // mul oD0.xyz, r3, c28.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r5, c20 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c28.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c20.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c28.w + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c19.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r7.xxyz, r0 + temp0.yzw = temp7.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c28.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c22.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r7.w, r0.y + o.color.w = temp7.w * temp0.y; + // lrp r0.yz, c24.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c26 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c17 + o.texcoord1 = temp0.yzzw * temp2 + expr17; + // add r0.yz, r1.xxyw, c27.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c27 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c29.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // mov r0.xy, c25 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v2, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c28.x + o.color1.w = float1(1); + // mov oT2.xy, c28.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_31 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_31_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_31_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_31_Output VS_M_Array_Shader_31(VS_M_Array_Shader_31_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c6.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + // mul c17.xy, c6.x, c5.zw + expr17.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_31_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c28, 1, -1, 0.25, 0 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c28.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c28.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // mov r4.xyz, c28.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c28.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c28.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c28.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c20 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c28.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c28.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c18 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c19, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c28 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c23.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c28.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c22.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c20.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.z + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c19 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c24.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c26 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c17 + o.texcoord1 = temp1 * temp2 + expr17; + // add r1.xy, r0, c27.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c27 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c29.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c25 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v3, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c28.x + o.color1.w = float1(1); + // mov oT2.xy, c28.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_32 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_32_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_32_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_32_Output VS_M_Array_Shader_32(VS_M_Array_Shader_32_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul c16.xy, c6.x, c4.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + // mul c17.xy, c6.x, c5.zw + expr17.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_32_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c28, 1, -1, 0.25, 0 + // def c29, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c28.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c28.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c28.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c28.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // mov r4.xyz, c28.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c28.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c28.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c28.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c20 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c28.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c28.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c18 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c19, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c28 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c23.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c28.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c22.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c21.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c3 + temp1.xyz = temp1.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r1.xyyz + temp2.xzw = temp2.zzz * temp1.xyz; + // mul r2.xzw, r2, c20.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.z + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.y, r1 + temp1.xyz = temp2.yyy * temp1.xyz; + // mul r1.xyz, r1, c19 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c24.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c26 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c17 + o.texcoord1 = temp1 * temp2 + expr17; + // add r1.xy, r0, c27.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c27 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c29.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c25 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v6, r0, c16 + o.texcoord = i.texcoord * temp0 + expr16; + // mov oD1.w, c28.x + o.color1.w = float1(1); + // mov oT2.xy, c28.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_33 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_33_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_33_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 color1 : COLOR1; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_33_Output VS_M_Array_Shader_33(VS_M_Array_Shader_33_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 12 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + // mul c22.xy, c6.x, c5.zw + expr22.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_33_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float addr0; + float3 temp8; + // def c2, -2, 3, 0, 0 + // def c32, 1, 0, 0.25, 0.5 + // def c33, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_color v4 + // mad r0, v0.xyzx, c32.xxxy, c32.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mov r1.w, c32.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp3 r0.y, v1, c124 + temp0.y = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.z, v1, c125 + temp0.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.w, v1, c126 + temp0.w = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r0.yzww + temp3.x = dot(temp3.xyz, temp0.yzw); + // mov r4.zw, c26.x + temp4.zw = Shininess.x; + // mov r3.yzw, c32.y + temp3.yzw = float3(0, 0, 0); + // mov r5, c32.yyyx + temp5 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r6.x, r5.w, r5.w + temp6.x = temp5.w + temp5.w; + // mova a0.x, r6.x + addr0.x = temp6.x; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.y, r0.yzww, r7 + temp4.y = dot(temp0.yzw, temp7.xyz); + // dp3 r4.x, r0.yzww, c6[a0.x] + temp4.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r4 + temp6 = lit(temp4.x, temp4.y, temp4.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r3.yzw, c5[a0.x].xxyz, r6.y, r3 + temp3.yzw = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp3.yzw; + // add r5.w, r5.w, c32.x + temp5.w = temp5.w + float1(1); + // endrep + } + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mov r6.xyz, c23 + temp6.xyz = ColorAmbient.xyz; + // mad r4.xyz, r4, r6, c15 + temp4.xyz = temp4.xyz * temp6.xyz + expr15.xyz; + // mad r3.yzw, r3, c24.xxyz, r4.xxyz + temp3.yzw = temp3.yzw * ColorDiffuse.xyz + temp4.xyz; + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c32.y + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c32.x + temp3.x = min(temp3.x, float1(1)); + // mul r4.x, r3.x, r3.x + temp4.x = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r4.x, r3.x + temp3.x = temp4.x * temp3.x; + // mul r4.w, r3.x, v4.w + temp4.w = temp3.x * i.color.w; + // mov r6.w, v4.w + temp6.w = i.color.w; + // mov r7.xz, c32 + temp7.xz = float2(1, 0.25); + // lrp r8.xyz, r7.z, r7.x, c0 + temp8.xyz = lerp(RecolorColor.xyz, temp7.xxx, temp7.zzz); + // mul r7.xyz, r8, v4 + temp7.xyz = temp8.xyz * i.color.xyz; + // mad r8.xyz, r7, c11.x, -r7 + temp8.xyz = temp7.xyz * expr11.xxx + -temp7.xyz; + // mad r4.xyz, c28.x, r8, r7 + temp4.xyz = HouseColorPulse.xxx * temp8.xyz + temp7.xyz; + // mul r6.xyz, r3.x, r4 + temp6.xyz = temp3.xxx * temp4.xyz; + // lrp r7, c14.x, r6, r4 + temp7 = lerp(temp4, temp6, expr14.x); + // mul r3.xyz, r3.yzww, r7 + temp3.xyz = temp3.yzw * temp7.xyz; + // mul oD0.xyz, r3, c32.w + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r5, c25 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c32.w + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0.yzww, c6 + temp3.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0.yzww, r4 + temp3.y = dot(temp0.yzw, temp4.xyz); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r3.xyz, c5 + temp3.xyz = DirectionalLight[0].Color.xyz; + // mul r0.yzw, r3.xxyz, c3.xxyz + temp0.yzw = temp3.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r0.yyzw + temp2.xzw = temp2.zzz * temp0.yzw; + // mul r2.xzw, r2, c25.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c32.w + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.y, r0 + temp0.yzw = temp2.yyy * temp0.yzw; + // mul r0.yzw, r0, c24.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r7.xxyz, r0 + temp0.yzw = temp7.xyz * temp0.yzw; + // mul oT5.xyz, r0.yzww, c32.w + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.x, c27.x + temp2.x = Opacity.x; + // mul r0.y, r2.x, c1.x + temp0.y = temp2.x * OpacityOverride.x; + // mul oD0.w, r7.w, r0.y + o.color.w = temp7.w * temp0.y; + // lrp r0.yz, c29.x, r1.xxyw, v3.xxyw + temp0.yz = lerp(i.texcoord1.xy, temp1.xy, UseWorldCords.xx); + // mov r2.xy, c30 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r0.yzzw, r2, c22 + o.texcoord1 = temp0.yzzw * temp2 + expr22; + // add r0.yz, r1.xxyw, c31.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0.yzzw, c31 + o.texcoord3 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.x, r0.x + temp1.x = 1.0f / temp0.x; + // mad oT4.xyz, r0.yzww, r1.x, c33.xxyw + o.texcoord4.xyz = temp0.yzw * temp1.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r0.x + o.texcoord4.w = temp0.x; + // add oT0.xy, v2, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c32.x + o.color1.w = float1(1); + // mov oT2.xy, c32.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_34 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_34_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_34_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_34_Output VS_M_Array_Shader_34(VS_M_Array_Shader_34_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 12 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + // mul c22.xy, c6.x, c5.zw + expr22.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_34_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c32, 1, -1, 0.25, 0 + // def c33, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_texcoord1 v4 + // dcl_color v5 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c32.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c32.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // mov r4.xyz, c32.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c32.w + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c32.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.y, r4.w + addr0.y = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.y] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.y / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.y] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.y / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.y], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.y], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.y / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c32.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c25 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // abs r2.w, r2.w + temp2.w = abs(temp2.w); + // mul r2.w, r2.w, c12.x + temp2.w = temp2.w * expr12.x; + // max r2.w, r2.w, c32.w + temp2.w = max(temp2.w, float1(0)); + // min r2.w, r2.w, c32.x + temp2.w = min(temp2.w, float1(1)); + // mul r3.x, r2.w, r2.w + temp3.x = temp2.w * temp2.w; + // mad r2.w, r2.w, c2.x, c2.y + temp2.w = temp2.w * float1(-2) + float1(3); + // mul r2.w, r3.x, r2.w + temp2.w = temp3.x * temp2.w; + // mul r2.w, r2.w, c129[a0.x].w + temp2.w = temp2.w * WorldBones[1 + addr0.x].w; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c23 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c24, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r2.w, v5.w + temp4.w = temp2.w * i.color.w; + // mov r5.w, v5.w + temp5.w = i.color.w; + // mov r6.xz, c32 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v5 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c28.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r2.w, r4 + temp5.xyz = temp2.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c32.x + temp0.w = float1(1); + // dp4 r2.w, r0, c116 + temp2.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c27.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mov r2.xyz, c5 + temp2.xyz = DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * NoCloudMultiplier.xyz; + // mul r1.xzw, r1.z, r2.xyyz + temp1.xzw = temp1.zzz * temp2.xyz; + // mul r1.xzw, r1, c25.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r1.xzww, c2.z + o.texcoord6 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, r2 + temp1.xyz = temp1.yyy * temp2.xyz; + // mul r1.xyz, r1, c24 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c29.x, r0, v4 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c30 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c22 + o.texcoord1 = temp1 * temp2 + expr22; + // add r1.xy, r0, c31.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c31 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r2.w + temp1.w = 1.0f / temp2.w; + // mad oT4.xyz, r1, r1.w, c33.xxyw + o.texcoord4.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov oT4.w, r2.w + o.texcoord4.w = temp2.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v3, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c32.x + o.color1.w = float1(1); + // mov oT2.xy, c32.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_35 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_35_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_35_Output +{ + float4 color1 : COLOR1; + float4 color : COLOR; + float3 texcoord6 : TEXCOORD6; + float3 texcoord5 : TEXCOORD5; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; +}; + +VS_M_Array_Shader_35_Output VS_M_Array_Shader_35(VS_M_Array_Shader_35_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 12 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 14 ConstInput 2 + 1 - ConstOutput: 21 ConstInput 2 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c6.x, (0.3183098861837907) + temp0.x = Time.x * (0.3183098861837907); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // add c11.x, r1.y, (1.2) + expr11.x = temp1.y + (1.2); + // rcp c12.x, c2.x + expr12.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c3.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul c15.xyz, c1.x, c0.xyz + expr15.xyz = EmissiveHDRMultipler.x * ColorEmissive.xyz; + // mul r0.x, c4.x, c6.x + temp0.x = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x * Time.x; + // add r1.x, r0.x, c4.w + temp1.x = temp0.x + TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.w; + // rcp r0.x, c4.z + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z); + // mul r2.x, r1.x, r0.x + temp2.x = temp1.x * temp0.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge r1.x, r2.x, r0.x + temp1.x = temp2.x >= temp0.x; + // max r1.y, r2.x, r0.x + temp1.y = max(temp2.x, temp0.x); + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // add r1.y, r0.x, r0.x + temp1.y = temp0.x + temp0.x; + // neg r1.z, r0.x + temp1.z = -temp0.x; + // mul r0.x, r1.x, r1.y + temp0.x = temp1.x * temp1.y; + // add r2.x, r1.z, r0.x + temp2.x = temp1.z + temp0.x; + // mul r0.x, r2.x, c4.z + temp0.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // lt r0.y, c4.x, (0) + temp0.y = TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.x < (0); + // mul r1.x, r0.y, c4.z + temp1.x = temp0.y * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.z; + // add r2.x, r0.x, r1.x + temp2.x = temp0.x + temp1.x; + // rcp r0.x, c4.y + temp0.x = 1.0f / (TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y); + // mul r1.y, r2.x, r0.x + temp1.y = temp2.x * temp0.x; + // neg r0.y, r1.y + temp0.y = -temp1.y; + // ge r2.x, r1.y, r0.y + temp2.x = temp1.y >= temp0.y; + // max r2.y, r1.y, r0.y + temp2.y = max(temp1.y, temp0.y); + // frc r0.y, r2.y + temp0.y = frac(temp2.y); + // add r1.z, r0.y, r0.y + temp1.z = temp0.y + temp0.y; + // neg r1.w, r0.y + temp1.w = -temp0.y; + // mul r0.y, r2.x, r1.z + temp0.y = temp2.x * temp1.z; + // add r2.x, r1.w, r0.y + temp2.x = temp1.w + temp0.y; + // mul r1.x, r2.x, c4.y + temp1.x = temp2.x * TextureAnimation_FPS_NumPerRow_LastFrame_FrameOffset_0.y; + // frc r0.yz, r1.xy + temp0.yz = frac(temp1.xy); + // neg r1.zw, r0.yz + temp1.zw = -temp0.yz; + // add r0.yz, r1.xy, r1.zw + temp0.yz = temp1.xy + temp1.zw; + // mul c21.xy, r0.x, r0.yz + expr21.xy = temp0.x * temp0.yz; + // mul c22.xy, c6.x, c5.zw + expr22.xy = Time.x * TexCoordTransform_1.zw; + } + + VS_M_Array_Shader_35_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c2, -2, 3, 0.5, 0 + // def c32, 1, -1, 0.25, 0 + // def c33, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_texcoord1 v7 + // dcl_color v8 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c32.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c32.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c32.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c32.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r2, r2 + temp2.w = dot(temp2.xyz, temp2.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // mov r4.xyz, c32.w + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c32.w + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c32.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r2.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c32.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c25 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c2.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // dp3 r3.x, r3, r1 + temp3.x = dot(temp3.xyz, temp1.xyz); + // abs r3.x, r3.x + temp3.x = abs(temp3.x); + // mul r3.x, r3.x, c12.x + temp3.x = temp3.x * expr12.x; + // max r3.x, r3.x, c32.w + temp3.x = max(temp3.x, float1(0)); + // min r3.x, r3.x, c32.x + temp3.x = min(temp3.x, float1(1)); + // mul r3.y, r3.x, r3.x + temp3.y = temp3.x * temp3.x; + // mad r3.x, r3.x, c2.x, c2.y + temp3.x = temp3.x * float1(-2) + float1(3); + // mul r3.x, r3.y, r3.x + temp3.x = temp3.y * temp3.x; + // mul r1.w, r1.w, r3.x + temp1.w = temp1.w * temp3.x; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c23 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + expr15.xyz; + // mad r3.xyz, r4, c24, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.w, r1.w, v8.w + temp4.w = temp1.w * i.color.w; + // mov r5.w, v8.w + temp5.w = i.color.w; + // mov r6.xz, c32 + temp6.xz = float2(1, 0.25); + // lrp r7.xyz, r6.z, r6.x, c0 + temp7.xyz = lerp(RecolorColor.xyz, temp6.xxx, temp6.zzz); + // mul r6.xyz, r7, v8 + temp6.xyz = temp7.xyz * i.color.xyz; + // mad r7.xyz, r6, c11.x, -r6 + temp7.xyz = temp6.xyz * expr11.xxx + -temp6.xyz; + // mad r4.xyz, c28.x, r7, r6 + temp4.xyz = HouseColorPulse.xxx * temp7.xyz + temp6.xyz; + // mul r5.xyz, r1.w, r4 + temp5.xyz = temp1.www * temp4.xyz; + // lrp r6, c14.x, r5, r4 + temp6 = lerp(temp4, temp5, expr14.x); + // mul r3.xyz, r3, r6 + temp3.xyz = temp3.xyz * temp6.xyz; + // mul oD0.xyz, r3, c2.z + o.color.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c32.x + temp0.w = float1(1); + // dp4 r1.w, r0, c116 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov r3.x, c27.x + temp3.x = Opacity.x; + // mul r3.x, r3.x, c1.x + temp3.x = temp3.x * OpacityOverride.x; + // mul oD0.w, r6.w, r3.x + o.color.w = temp6.w * temp3.x; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r2.w, c6 + temp2.xyz = temp2.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r2 + temp4.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // mov r3.zw, c26.x + temp3.zw = Shininess.x; + // lit r2, r3 + temp2 = lit(temp3.x, temp3.y, temp3.w); + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c3 + temp1.xyz = temp1.xyz * NoCloudMultiplier.xyz; + // mul r2.xzw, r2.z, r1.xyyz + temp2.xzw = temp2.zzz * temp1.xyz; + // mul r2.xzw, r2, c25.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT6.xyz, r2.xzww, c2.z + o.texcoord6 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r2.y, r1 + temp1.xyz = temp2.yyy * temp1.xyz; + // mul r1.xyz, r1, c24 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r6, r1 + temp1.xyz = temp6.xyz * temp1.xyz; + // mul oT5.xyz, r1, c2.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // lrp r1.xy, c29.x, r0, v7 + temp1.xy = lerp(i.texcoord1.xy, temp0.xy, UseWorldCords.xx); + // mov r2.xy, c30 + temp2.xy = TexCoordTransform_1.xy; + // mad oT1.xy, r1, r2, c22 + o.texcoord1 = temp1 * temp2 + expr22; + // add r1.xy, r0, c31.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r1, c31 + o.texcoord3 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mad oT4.xyz, r1, r2.x, c33.xxyw + o.texcoord4.xyz = temp1.xyz * temp2.xxx + float3(0, 0, -0.0015); + // mov oT4.w, r1.w + o.texcoord4.w = temp1.w; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add oT0.xy, v6, c21 + o.texcoord = i.texcoord + expr21; + // mov oD1.w, c32.x + o.color1.w = float1(1); + // mov oT2.xy, c32.x + o.texcoord2 = float4(1, 1, 1, 1); + // + + return o; +} + +VertexShader VS_M_Array[36] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 192 + compile vs_2_0 VS_M_Array_Shader_1(), // 193 + compile vs_2_0 VS_M_Array_Shader_2(), // 194 + compile vs_2_0 VS_M_Array_Shader_3(), // 195 + compile vs_2_0 VS_M_Array_Shader_4(), // 196 + compile vs_2_0 VS_M_Array_Shader_5(), // 197 + compile vs_2_0 VS_M_Array_Shader_6(), // 198 + compile vs_2_0 VS_M_Array_Shader_7(), // 199 + compile vs_2_0 VS_M_Array_Shader_8(), // 200 + compile vs_2_0 VS_M_Array_Shader_9(), // 201 + compile vs_2_0 VS_M_Array_Shader_10(), // 202 + compile vs_2_0 VS_M_Array_Shader_11(), // 203 + compile vs_2_0 VS_M_Array_Shader_12(), // 204 + compile vs_2_0 VS_M_Array_Shader_13(), // 205 + compile vs_2_0 VS_M_Array_Shader_14(), // 206 + compile vs_2_0 VS_M_Array_Shader_15(), // 207 + compile vs_2_0 VS_M_Array_Shader_16(), // 208 + compile vs_2_0 VS_M_Array_Shader_17(), // 209 + compile vs_2_0 VS_M_Array_Shader_18(), // 210 + compile vs_2_0 VS_M_Array_Shader_19(), // 211 + compile vs_2_0 VS_M_Array_Shader_20(), // 212 + compile vs_2_0 VS_M_Array_Shader_21(), // 213 + compile vs_2_0 VS_M_Array_Shader_22(), // 214 + compile vs_2_0 VS_M_Array_Shader_23(), // 215 + compile vs_2_0 VS_M_Array_Shader_24(), // 216 + compile vs_2_0 VS_M_Array_Shader_25(), // 217 + compile vs_2_0 VS_M_Array_Shader_26(), // 218 + compile vs_2_0 VS_M_Array_Shader_27(), // 219 + compile vs_2_0 VS_M_Array_Shader_28(), // 220 + compile vs_2_0 VS_M_Array_Shader_29(), // 221 + compile vs_2_0 VS_M_Array_Shader_30(), // 222 + compile vs_2_0 VS_M_Array_Shader_31(), // 223 + compile vs_2_0 VS_M_Array_Shader_32(), // 224 + compile vs_2_0 VS_M_Array_Shader_33(), // 225 + compile vs_2_0 VS_M_Array_Shader_34(), // 226 + compile vs_2_0 VS_M_Array_Shader_35(), // 227 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mul r1.xyz, r1, r0 + temp1.xyz = temp1.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 4, 0, 0, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mul r1.xyz, r1, r0 + temp1.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_6 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_6_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_6(PS_M_Array_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_7 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_7_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_7(PS_M_Array_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_8 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_8_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_8(PS_M_Array_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t1, s1 + temp0 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mad r0.xyz, r3, -r1, r0 + temp0.xyz = temp3.xyz * -temp1.xyz + temp0.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r1, r1, r3 + temp1 = temp1 * temp3; + // mad r0.xyz, r1.w, r0, r1 + temp0.xyz = temp1.www * temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_M_Array_Shader_9 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_9_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_9(PS_M_Array_Shader_9_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_10 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_10_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_10(PS_M_Array_Shader_10_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_11 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_11_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_11(PS_M_Array_Shader_11_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // mad r2.xyz, r2, r0.w, r0 + temp2.xyz = temp2.xyz * temp0.www + temp0.xyz; + // add r2.xyz, r2, r2 + temp2.xyz = temp2.xyz + temp2.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_12 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_12_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_12(PS_M_Array_Shader_12_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_13 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_13_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_13(PS_M_Array_Shader_13_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_14 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_14_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_14(PS_M_Array_Shader_14_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mul r1.xyz, r1, r0 + temp1.xyz = temp1.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_15 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_15_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_15(PS_M_Array_Shader_15_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_16 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_16_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_16(PS_M_Array_Shader_16_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_17 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_17_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_17(PS_M_Array_Shader_17_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 4, 0, 0, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mul r1.xyz, r1, r0 + temp1.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_18 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_18_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_18(PS_M_Array_Shader_18_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_19 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_19_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_19(PS_M_Array_Shader_19_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_20 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_20_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_20(PS_M_Array_Shader_20_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t1, s1 + temp0 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mad r0.xyz, r3, -r1, r0 + temp0.xyz = temp3.xyz * -temp1.xyz + temp0.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r1, r1, r3 + temp1 = temp1 * temp3; + // mad r0.xyz, r1.w, r0, r1 + temp0.xyz = temp1.www * temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_M_Array_Shader_21 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_21_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_21(PS_M_Array_Shader_21_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_22 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_22_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_22(PS_M_Array_Shader_22_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_23 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_23_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_23(PS_M_Array_Shader_23_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // mad r2.xyz, r2, r0.w, r0 + temp2.xyz = temp2.xyz * temp0.www + temp0.xyz; + // add r2.xyz, r2, r2 + temp2.xyz = temp2.xyz + temp2.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_24 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_24_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_24(PS_M_Array_Shader_24_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_25 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_25_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_25(PS_M_Array_Shader_25_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_26 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_26_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_26(PS_M_Array_Shader_26_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mul r1.xyz, r1, r0 + temp1.xyz = temp1.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_27 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_27_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_27(PS_M_Array_Shader_27_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_28 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_28_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_28(PS_M_Array_Shader_28_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_29 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_29_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_29(PS_M_Array_Shader_29_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 4, 0, 0, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mul r1.xyz, r1, r0 + temp1.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_30 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_30_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_30(PS_M_Array_Shader_30_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_31 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_31_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_31(PS_M_Array_Shader_31_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_32 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_32_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_32(PS_M_Array_Shader_32_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t1, s1 + temp0 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // add r3.xyz, r3, t5 + temp3.xyz = temp3.xyz + i.texcoord5.xyz; + // mov r4.xyz, v1 + temp4.xyz = i.color1.xyz; + // add r4.xyz, r4, t6 + temp4.xyz = temp4.xyz + i.texcoord6.xyz; + // add r3.xyz, r3, r4 + temp3.xyz = temp3.xyz + temp4.xyz; + // mad r0.xyz, r3, -r1, r0 + temp0.xyz = temp3.xyz * -temp1.xyz + temp0.xyz; + // mov r3.w, v0.w + temp3.w = i.color.w; + // mul r1, r1, r3 + temp1 = temp1 * temp3; + // mad r0.xyz, r1.w, r0, r1 + temp0.xyz = temp1.www * temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_M_Array_Shader_33 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_33_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_33(PS_M_Array_Shader_33_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // texld r0, t3, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // add r1.xyz, r1, t5 + temp1.xyz = temp1.xyz + i.texcoord5.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // add r1.xyz, r1, r2 + temp1.xyz = temp1.xyz + temp2.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_34 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_34_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_34(PS_M_Array_Shader_34_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // add r3.xyz, r3, t6 + temp3.xyz = temp3.xyz + i.texcoord6.xyz; + // add r2.xyz, r2, r3 + temp2.xyz = temp2.xyz + temp3.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r2.xyz, r0, r0 + temp2.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_35 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_35_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_35(PS_M_Array_Shader_35_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r2.xyz, v0 + temp2.xyz = i.color.xyz; + // add r2.xyz, r2, t5 + temp2.xyz = temp2.xyz + i.texcoord5.xyz; + // mov r2.w, v0.w + temp2.w = i.color.w; + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // add r2.xyz, r2, t6 + temp2.xyz = temp2.xyz + i.texcoord6.xyz; + // mad r2.xyz, r2, r0.w, r0 + temp2.xyz = temp2.xyz * temp0.www + temp0.xyz; + // add r2.xyz, r2, r2 + temp2.xyz = temp2.xyz + temp2.xyz; + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_36 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_36_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_36(PS_M_Array_Shader_36_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_37 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_37_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_37(PS_M_Array_Shader_37_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_38 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_38_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_38(PS_M_Array_Shader_38_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_39 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_39_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_39(PS_M_Array_Shader_39_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_40 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_40_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_40(PS_M_Array_Shader_40_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_41 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_41_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_41(PS_M_Array_Shader_41_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 4 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // mul r1.xyz, r1, c0.w + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_42 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_42_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_42(PS_M_Array_Shader_42_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_43 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_43_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_43(PS_M_Array_Shader_43_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_44 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_44_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_44(PS_M_Array_Shader_44_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t1, s2 + temp4 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mad r1.xyz, r0, -r5, r4 + temp1.xyz = temp0.xyz * -temp5.xyz + temp4.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_45 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_45_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_45(PS_M_Array_Shader_45_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_46 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_46_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_46(PS_M_Array_Shader_46_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_47 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_47_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_47(PS_M_Array_Shader_47_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, t6 + temp0.xyz = i.texcoord6.xyz; + // mad r0.xyz, r0, r5.w, v1 + temp0.xyz = temp0.xyz * temp5.www + i.color1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r5.w, r1 + temp1.xyz = i.texcoord5.xyz * temp5.www + temp1.xyz; + // mov r1.w, v0.w + temp1.w = i.color.w; + // mul r1, r4, r1 + temp1 = temp4 * temp1; + // mad r0.xyz, r0, r1.w, r1 + temp0.xyz = temp0.xyz * temp1.www + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_M_Array_Shader_48 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_48_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_48(PS_M_Array_Shader_48_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_49 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_49_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_49(PS_M_Array_Shader_49_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_50 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_50_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_50(PS_M_Array_Shader_50_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_51 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_51_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_51(PS_M_Array_Shader_51_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_52 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_52_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_52(PS_M_Array_Shader_52_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_53 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_53_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_53(PS_M_Array_Shader_53_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 4 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // mul r1.xyz, r1, c0.w + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_54 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_54_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_54(PS_M_Array_Shader_54_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_55 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_55_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_55(PS_M_Array_Shader_55_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_56 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_56_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_56(PS_M_Array_Shader_56_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t1, s2 + temp4 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mad r1.xyz, r0, -r5, r4 + temp1.xyz = temp0.xyz * -temp5.xyz + temp4.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_57 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_57_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_57(PS_M_Array_Shader_57_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_58 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_58_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_58(PS_M_Array_Shader_58_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_59 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_59_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_59(PS_M_Array_Shader_59_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, t6 + temp0.xyz = i.texcoord6.xyz; + // mad r0.xyz, r0, r5.w, v1 + temp0.xyz = temp0.xyz * temp5.www + i.color1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r5.w, r1 + temp1.xyz = i.texcoord5.xyz * temp5.www + temp1.xyz; + // mov r1.w, v0.w + temp1.w = i.color.w; + // mul r1, r4, r1 + temp1 = temp4 * temp1; + // mad r0.xyz, r0, r1.w, r1 + temp0.xyz = temp0.xyz * temp1.www + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_M_Array_Shader_60 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_60_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_60(PS_M_Array_Shader_60_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_61 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_61_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_61(PS_M_Array_Shader_61_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_62 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_62_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_62(PS_M_Array_Shader_62_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_63 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_63_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_63(PS_M_Array_Shader_63_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_64 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_64_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_64(PS_M_Array_Shader_64_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_65 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_65_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_65(PS_M_Array_Shader_65_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 4 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t1, s2 + temp5 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // mul r1.xyz, r1, c0.w + temp1.xyz = temp1.xyz * float3(4, 4, 4); + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_66 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_66_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_66(PS_M_Array_Shader_66_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_67 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_67_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_67(PS_M_Array_Shader_67_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_68 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_68_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_68(PS_M_Array_Shader_68_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t1, s2 + temp4 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // texld r5, t0, s1 + temp5 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r6, t3, s3 + temp6 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mad r1.xyz, r0, -r5, r4 + temp1.xyz = temp0.xyz * -temp5.xyz + temp4.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r5, r0 + temp0 = temp5 * temp0; + // mad r1.xyz, r0.w, r1, r0 + temp1.xyz = temp0.www * temp1.xyz + temp0.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r6, r1 + temp0.xyz = temp6.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_69 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_69_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_69(PS_M_Array_Shader_69_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t3, s1 + temp4 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.x, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c0.z + temp4.w = temp4.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r4.w, r0 + temp0.xyz = i.texcoord5.xyz * temp4.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r4.w, v1 + temp1.xyz = temp1.xyz * temp4.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_70 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_70_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_70(PS_M_Array_Shader_70_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mad r0.xyz, t5, r5.w, r0 + temp0.xyz = i.texcoord5.xyz * temp5.www + temp0.xyz; + // mov r1.xyz, t6 + temp1.xyz = i.texcoord6.xyz; + // mad r1.xyz, r1, r5.w, v1 + temp1.xyz = temp1.xyz * temp5.www + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r5, r1 + temp0.xyz = temp5.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_71 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_71_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_71(PS_M_Array_Shader_71_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 1, 0, 0.25, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t3.xy + // dcl t4.xyz + // dcl t5.xyz + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t4, c11.zxyw + temp0.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t4, c11.yzxw + temp1.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t4, c11.wzyx + temp2.xy = i.texcoord4.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t4, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // texld r4, t0, s1 + temp4 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r5, t3, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t4.z + temp0 = temp3 + -i.texcoord4.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.x, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.z + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, t6 + temp0.xyz = i.texcoord6.xyz; + // mad r0.xyz, r0, r5.w, v1 + temp0.xyz = temp0.xyz * temp5.www + i.color1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r1.xyz, t5, r5.w, r1 + temp1.xyz = i.texcoord5.xyz * temp5.www + temp1.xyz; + // mov r1.w, v0.w + temp1.w = i.color.w; + // mul r1, r4, r1 + temp1 = temp4 * temp1; + // mad r0.xyz, r0, r1.w, r1 + temp0.xyz = temp0.xyz * temp1.www + temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r5, r0 + temp1.xyz = temp5.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_M_Array[72] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 228 + compile ps_2_0 PS_M_Array_Shader_1(), // 229 + compile ps_2_0 PS_M_Array_Shader_2(), // 230 + compile ps_2_0 PS_M_Array_Shader_3(), // 231 + compile ps_2_0 PS_M_Array_Shader_4(), // 232 + compile ps_2_0 PS_M_Array_Shader_5(), // 233 + compile ps_2_0 PS_M_Array_Shader_6(), // 234 + compile ps_2_0 PS_M_Array_Shader_7(), // 235 + compile ps_2_0 PS_M_Array_Shader_8(), // 236 + compile ps_2_0 PS_M_Array_Shader_9(), // 237 + compile ps_2_0 PS_M_Array_Shader_10(), // 238 + compile ps_2_0 PS_M_Array_Shader_11(), // 239 + compile ps_2_0 PS_M_Array_Shader_12(), // 240 + compile ps_2_0 PS_M_Array_Shader_13(), // 241 + compile ps_2_0 PS_M_Array_Shader_14(), // 242 + compile ps_2_0 PS_M_Array_Shader_15(), // 243 + compile ps_2_0 PS_M_Array_Shader_16(), // 244 + compile ps_2_0 PS_M_Array_Shader_17(), // 245 + compile ps_2_0 PS_M_Array_Shader_18(), // 246 + compile ps_2_0 PS_M_Array_Shader_19(), // 247 + compile ps_2_0 PS_M_Array_Shader_20(), // 248 + compile ps_2_0 PS_M_Array_Shader_21(), // 249 + compile ps_2_0 PS_M_Array_Shader_22(), // 250 + compile ps_2_0 PS_M_Array_Shader_23(), // 251 + compile ps_2_0 PS_M_Array_Shader_24(), // 252 + compile ps_2_0 PS_M_Array_Shader_25(), // 253 + compile ps_2_0 PS_M_Array_Shader_26(), // 254 + compile ps_2_0 PS_M_Array_Shader_27(), // 255 + compile ps_2_0 PS_M_Array_Shader_28(), // 256 + compile ps_2_0 PS_M_Array_Shader_29(), // 257 + compile ps_2_0 PS_M_Array_Shader_30(), // 258 + compile ps_2_0 PS_M_Array_Shader_31(), // 259 + compile ps_2_0 PS_M_Array_Shader_32(), // 260 + compile ps_2_0 PS_M_Array_Shader_33(), // 261 + compile ps_2_0 PS_M_Array_Shader_34(), // 262 + compile ps_2_0 PS_M_Array_Shader_35(), // 263 + compile ps_2_0 PS_M_Array_Shader_36(), // 264 + compile ps_2_0 PS_M_Array_Shader_37(), // 265 + compile ps_2_0 PS_M_Array_Shader_38(), // 266 + compile ps_2_0 PS_M_Array_Shader_39(), // 267 + compile ps_2_0 PS_M_Array_Shader_40(), // 268 + compile ps_2_0 PS_M_Array_Shader_41(), // 269 + compile ps_2_0 PS_M_Array_Shader_42(), // 270 + compile ps_2_0 PS_M_Array_Shader_43(), // 271 + compile ps_2_0 PS_M_Array_Shader_44(), // 272 + compile ps_2_0 PS_M_Array_Shader_45(), // 273 + compile ps_2_0 PS_M_Array_Shader_46(), // 274 + compile ps_2_0 PS_M_Array_Shader_47(), // 275 + compile ps_2_0 PS_M_Array_Shader_48(), // 276 + compile ps_2_0 PS_M_Array_Shader_49(), // 277 + compile ps_2_0 PS_M_Array_Shader_50(), // 278 + compile ps_2_0 PS_M_Array_Shader_51(), // 279 + compile ps_2_0 PS_M_Array_Shader_52(), // 280 + compile ps_2_0 PS_M_Array_Shader_53(), // 281 + compile ps_2_0 PS_M_Array_Shader_54(), // 282 + compile ps_2_0 PS_M_Array_Shader_55(), // 283 + compile ps_2_0 PS_M_Array_Shader_56(), // 284 + compile ps_2_0 PS_M_Array_Shader_57(), // 285 + compile ps_2_0 PS_M_Array_Shader_58(), // 286 + compile ps_2_0 PS_M_Array_Shader_59(), // 287 + compile ps_2_0 PS_M_Array_Shader_60(), // 288 + compile ps_2_0 PS_M_Array_Shader_61(), // 289 + compile ps_2_0 PS_M_Array_Shader_62(), // 290 + compile ps_2_0 PS_M_Array_Shader_63(), // 291 + compile ps_2_0 PS_M_Array_Shader_64(), // 292 + compile ps_2_0 PS_M_Array_Shader_65(), // 293 + compile ps_2_0 PS_M_Array_Shader_66(), // 294 + compile ps_2_0 PS_M_Array_Shader_67(), // 295 + compile ps_2_0 PS_M_Array_Shader_68(), // 296 + compile ps_2_0 PS_M_Array_Shader_69(), // 297 + compile ps_2_0 PS_M_Array_Shader_70(), // 298 + compile ps_2_0 PS_M_Array_Shader_71(), // 299 +}; +// _Default_L_Expression217 Expression_2_0 Has PRES False +float _Default_L_Expression217() +{ + float4 temp0; + float4 temp1; + float1 expr0; + // min r0.x, c1.x, (2) + temp0.x = min(NumTextures.x, (2)); + // mul r0.y, c2.x, (3) + temp0.y = SecondaryTextureBlendMode.x * (3); + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // mul r0.x, c0.x, (36) + temp0.x = HasShadow.x * (36); + // add c0.x, r1.x, r0.x + expr0.x = temp1.x + temp0.x; + return expr0; +} + +// _Default_L_Expression218 Expression_2_0 Has PRES False +float _Default_L_Expression218() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // min r0.x, c3.x, (2) + temp0.x = min(TexCoordMapper_0.x, (2)); + // mul r1.x, r0.x, (3) + temp1.x = temp0.x * (3); + // min r0.x, c1.x, (2) + temp0.x = min(NumJointsPerVertex.x, (2)); + // add r2.x, r1.x, r0.x + temp2.x = temp1.x + temp0.x; + // min r0.x, c4.x, (1) + temp0.x = min(TexCoordMapper_1.x, (1)); + // mul r1.x, r0.x, (9) + temp1.x = temp0.x * (9); + // add r0.x, r2.x, r1.x + temp0.x = temp2.x + temp1.x; + // mul r0.y, c0.x, c2.x + temp0.y = HasRecolorColors.x * UseRecolorColors.x; + // mul r1.x, r0.y, (18) + temp1.x = temp0.y * (18); + // add c0.x, r0.x, r1.x + expr0.x = temp0.x + temp1.x; + return expr0; +} + +// _Default_M_Expression219 Expression_2_0 Has PRES False +float _Default_M_Expression219() +{ + float4 temp0; + float4 temp1; + float1 expr0; + // min r0.x, c1.x, (2) + temp0.x = min(NumTextures.x, (2)); + // mul r0.y, c2.x, (3) + temp0.y = SecondaryTextureBlendMode.x * (3); + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // mul r0.x, c0.x, (36) + temp0.x = HasShadow.x * (36); + // add c0.x, r1.x, r0.x + expr0.x = temp1.x + temp0.x; + return expr0; +} + +// _Default_M_Expression220 Expression_2_0 Has PRES False +float _Default_M_Expression220() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // min r0.x, c3.x, (2) + temp0.x = min(TexCoordMapper_0.x, (2)); + // mul r1.x, r0.x, (3) + temp1.x = temp0.x * (3); + // min r0.x, c1.x, (2) + temp0.x = min(NumJointsPerVertex.x, (2)); + // add r2.x, r1.x, r0.x + temp2.x = temp1.x + temp0.x; + // min r0.x, c4.x, (1) + temp0.x = min(TexCoordMapper_1.x, (1)); + // mul r1.x, r0.x, (9) + temp1.x = temp0.x * (9); + // add r0.x, r2.x, r1.x + temp0.x = temp2.x + temp1.x; + // mul r0.y, c0.x, c2.x + temp0.y = HasRecolorColors.x * UseRecolorColors.x; + // mul r1.x, r0.y, (18) + temp1.x = temp0.y * (18); + // add c0.x, r0.x, r1.x + expr0.x = temp0.x + temp1.x; + return expr0; +} + +// Default_Expression221 Expression_2_0 Has PRES False +float Default_Expression221() +{ + float4 temp0; + float4 temp1; + float1 expr0; + // min r0.x, c1.x, (2) + temp0.x = min(NumTextures.x, (2)); + // mul r0.y, c2.x, (3) + temp0.y = SecondaryTextureBlendMode.x * (3); + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // mul r0.x, c0.x, (36) + temp0.x = HasShadow.x * (36); + // add c0.x, r1.x, r0.x + expr0.x = temp1.x + temp0.x; + return expr0; +} + +// Default_Expression222 Expression_2_0 Has PRES False +float Default_Expression222() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // min r0.x, c3.x, (2) + temp0.x = min(TexCoordMapper_0.x, (2)); + // mul r1.x, r0.x, (3) + temp1.x = temp0.x * (3); + // min r0.x, c1.x, (2) + temp0.x = min(NumJointsPerVertex.x, (2)); + // add r2.x, r1.x, r0.x + temp2.x = temp1.x + temp0.x; + // min r0.x, c4.x, (1) + temp0.x = min(TexCoordMapper_1.x, (1)); + // mul r1.x, r0.x, (9) + temp1.x = temp0.x * (9); + // add r0.x, r2.x, r1.x + temp0.x = temp2.x + temp1.x; + // mul r0.y, c0.x, c2.x + temp0.y = HasRecolorColors.x * UseRecolorColors.x; + // mul r1.x, r0.y, (18) + temp1.x = temp0.y * (18); + // add c0.x, r0.x, r1.x + expr0.x = temp0.x + temp1.x; + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression222()]; // 190 + PixelShader = PS_Array[Default_Expression221()]; // 191 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression220()]; // 301 + PixelShader = PS_M_Array[_Default_M_Expression219()]; // 302 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression218()]; // 304 + PixelShader = PS_M_Array[_Default_L_Expression217()]; // 305 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + diff --git a/distortingobject.fx b/distortingobject.fx new file mode 100644 index 0000000..987369e --- /dev/null +++ b/distortingobject.fx @@ -0,0 +1,481 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride : register(vs_2_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124); +texture NormalMap ; // 6 +sampler2D NormalMapSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 8 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float4 TexCoordTransform_0 : register(vs_2_0, c14) = { 1, 1, 0, 0 }; +float BumpScale : register(ps_2_0, c11) = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c15) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 18 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +column_major float4x4 View : View : register(vs_2_0, c11); +float Time : Time; +// VS_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 16 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 16 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr16; + { + // Expression_2_1 + // mul c16.xy, c1.x, c0.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 200, 500 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c13 + temp0.x = dot(temp1, (View._m02_m12_m22_m32)); + // add r0.yz, r1.xxyw, c15.xzww + temp0.yz = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v3, c124 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v3, c125 + temp1.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v3, c126 + temp1.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 oT2.x, -r1, c11 + o.texcoord2.x = dot(-temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.x, -r1, c12 + o.texcoord3.x = dot(-temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.x, -r1, c13 + o.texcoord4.x = dot(-temp1.xyz, (View._m02_m12_m22_m32).xyz); + // dp3 r1.x, v2, c124 + temp1.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v2, c125 + temp1.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v2, c126 + temp1.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 oT2.y, -r1, c11 + o.texcoord2.y = dot(-temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.y, -r1, c12 + o.texcoord3.y = dot(-temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.y, -r1, c13 + o.texcoord4.y = dot(-temp1.xyz, (View._m02_m12_m22_m32).xyz); + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 oT2.z, r1, c11 + o.texcoord2.z = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.z, r1, c12 + o.texcoord3.z = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.z, r1, c13 + o.texcoord4.z = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(200); + // rcp r0.x, r0.x + temp0.x = 1.0f / temp0.x; + // mul r1.xyz, r0.x, c0.w + temp1.xyz = temp0.xxx * float3(500, 500, 500); + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v5 + o.color = temp1 * i.color; + // mov r1.xy, c14 + temp1.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v4, r1, c16 + o.texcoord = i.texcoord * temp1 + expr16; + // mul oT1.xy, r0.yzzw, c15 + o.texcoord1 = temp0.yzzw * Shroud.ScaleUV_OffsetUV; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 16 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 16 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr16; + { + // Expression_2_1 + // mul c16.xy, c1.x, c0.zw + expr16.xy = Time.x * TexCoordTransform_0.zw; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 200, 500 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.z, r0, c13 + temp0.z = dot(temp0, (View._m02_m12_m22_m32)); + // add r0.xy, r0, c15.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 oT2.x, -r1, c11 + o.texcoord2.x = dot(-temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.x, -r1, c12 + o.texcoord3.x = dot(-temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.x, -r1, c13 + o.texcoord4.x = dot(-temp1.xyz, (View._m02_m12_m22_m32).xyz); + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 oT2.y, -r1, c11 + o.texcoord2.y = dot(-temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.y, -r1, c12 + o.texcoord3.y = dot(-temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.y, -r1, c13 + o.texcoord4.y = dot(-temp1.xyz, (View._m02_m12_m22_m32).xyz); + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 oT2.z, r1, c11 + o.texcoord2.z = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.z, r1, c12 + o.texcoord3.z = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.z, r1, c13 + o.texcoord4.z = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz); + // add r0.z, -r0.z, c0.z + temp0.z = -temp0.z + float1(200); + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // mul r1.xyz, r0.z, c0.w + temp1.xyz = temp0.zzz * float3(500, 500, 500); + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v6 + o.color = temp1 * i.color; + // mov r1.xy, c14 + temp1.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v5, r1, c16 + o.texcoord = i.texcoord * temp1 + expr16; + // mul oT1.xy, r0, c15 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // + + return o; +} + +VertexShader VS_Array[2] = { + compile vs_2_0 VS_Array_Shader_0(), // 25 + compile vs_2_0 VS_Array_Shader_1(), // 26 +}; +// Default_M_Expression3 Expression_2_0 Has PRES False +float Default_M_Expression3() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// Default_M_PixelShader4 Pixel_2_0 Has PRES False +struct Default_M_PixelShader4_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; +}; + +float4 Default_M_PixelShader4(Default_M_PixelShader4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0.5, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xyz + // dcl t3.xyz + // dcl t4.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(NormalMapSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.w, r0.w, v0.w + temp0.w = temp0.w * i.color.w; + // mul r0.xy, r0, c11.x + temp0.xy = temp0.xy * BumpScale.xx; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r1, t2 + temp0.x = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r0.y, r1, t3 + temp0.y = dot(temp1.xyz, i.texcoord3.xyz); + // dp3 r0.z, r1, t4 + temp0.z = dot(temp1.xyz, i.texcoord4.xyz); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mad r2.xyz, r0, c0.z, c0.z + temp2.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5); + // mul r2.w, r1.w, r0.w + temp2.w = temp1.w * temp0.w; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// Default_M_Expression5 Expression_2_0 Has PRES False +float Default_M_Expression5() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_Array[Default_M_Expression5()]; // 28 + PixelShader = compile ps_2_0 Default_M_PixelShader4(); // 29 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = Default_M_Expression3(); // 0 + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ +} + diff --git a/errormissing.fx b/errormissing.fx new file mode 100644 index 0000000..1a0409b --- /dev/null +++ b/errormissing.fx @@ -0,0 +1,73 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +// Default_PixelShader1 Pixel_2_0 Has PRES False +float4 Default_PixelShader1() : COLOR +{ + float4 out_color; + // def c0, 1, 0, 1, 1 + // mov oC0, c0 + out_color = float4(1, 0, 1, 1); + // + + return out_color; +} + +// Default_VertexShader2 Vertex_2_0 Has PRES False +float4 Default_VertexShader2(float4 position : POSITION) : POSITION +{ + float4 out_position; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // + + return out_position; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader2(); // 2 + PixelShader = compile ps_2_0 Default_PixelShader1(); // 3 + ZEnable = 0; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + ColorWriteEnable = 15; + AlphaTestEnable = 0; + } +} + diff --git a/fxbeamhit.fx b/fxbeamhit.fx new file mode 100644 index 0000000..6191f55 --- /dev/null +++ b/fxbeamhit.fx @@ -0,0 +1,485 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride : register(vs_2_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct { + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct { + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct { + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture BaseTexture ; // 8 +sampler2D BaseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 10 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 2; + AddressV = 2; +}; +texture SwirlTexture ; // 13 +sampler2D SwirlTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 15 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 2; + AddressV = 2; +}; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +float Time : Time; +// Textured_PixelShader1 Pixel_2_0 Has PRES True +struct Textured_PixelShader1_Input +{ + float3 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Textured_PixelShader1(Textured_PixelShader1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 13 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul c11.x, c0.x, (0.1075) + expr11.x = Time.x * (0.1075); + // mul c13.x, c0.x, (5.3882655) + expr13.x = Time.x * (5.3882655); + // mul r0.x, c0.x, (10.75) + temp0.x = Time.x * (10.75); + // add r1.x, r0.x, (1000) + temp1.x = temp0.x + (1000); + // mul r0.x, r1.x, (-0.01) + temp0.x = temp1.x * (-0.01); + // mul r0.y, c0.x, (0.5375) + temp0.y = Time.x * (0.5375); + // add c14.x, r0.x, r0.y + expr14.x = temp0.x + temp0.y; + } + + float4 out_color; + float4 temp0, temp1; + float2 temp2; + // def c0, -0.5, 0.1193662, 0.5, 0 + // def c1, 6.283185, -3.141593, 1, -1 + // def c2, 5, 0, 0, 0 + // def c3, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c4, -0.02083333, -0.125, 1, 0.5 + // dcl v0.xyz + // dcl t0.xy + // dcl_2d s0 + // dcl_2d s1 + // mov r0.w, c13.x + temp0.w = expr13.x; + // add r0.y, r0.w, t0.y + temp0.y = temp0.w + i.texcoord.y; + // add r0.x, t0.x, c11.x + temp0.x = i.texcoord.x + expr11.x; + // mov r0.z, c14.x + temp0.z = expr14.x; + // add r1.y, r0.z, t0.y + temp1.y = temp0.z + i.texcoord.y; + // mov r1.x, t0.x + temp1.x = i.texcoord.x; + // texld r0, r0, s1 + temp0 = tex2D(SwirlTextureSampler, temp0.xy); + // texld r1, r1, s1 + temp1 = tex2D(SwirlTextureSampler, temp1.xy); + // add r0.x, -r0.x, r1.x + temp0.x = -temp0.x + temp1.x; + // mad r0.x, r0.x, c0.y, c0.z + temp0.x = temp0.x * float1(0.119366206) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c1.x, c1.y + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r1.xy, r0.x, c3, c4 + temp1.xy = float2(cos(temp0.x), sin(temp0.x)); + // mul r0.x, r1.y, c1.w + temp0.x = temp1.y * float1(-1); + // mul r0.y, r1.x, c1.z + temp0.y = temp1.x * float1(1); + // add r2.xy, t0, c0.x + temp2.xy = i.texcoord.xy + float2(-0.5, -0.5); + // dp2add r0.y, r2, r0, c0.w + temp0.y = dot(temp2.xy, temp0.xy) + float1(0); + // dp2add r0.x, r2, r1, c0.w + temp0.x = dot(temp2.xy, temp1.xy) + float1(0); + // add r0.xy, r0, c0.z + temp0.xy = temp0.xy + float2(0.5, 0.5); + // texld r0, r0, s0 + temp0 = tex2D(BaseTextureSampler, temp0.xy); + // min r1.x, r0.x, c1.z + temp1.x = min(temp0.x, float1(1)); + // mul r0.w, r1.x, c2.x + temp0.w = temp1.x * float1(5); + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Textured_VertexShader2 Vertex_2_0 Has PRES True +struct Textured_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Textured_VertexShader2_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Textured_VertexShader2_Output Textured_VertexShader2(Textured_VertexShader2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 28 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 6 + Unknown3: 0 + Unknown4: 0 + Unknown5: 28 + Unknown6: 6 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr28; + float4 expr29; + float4 expr30; + float4 expr31; + float4 expr32; + float4 expr33; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c0.x, (3.75) + temp0.x = Time.x * (3.75); + // add r1.x, r0.x, (3.4375) + temp1.x = temp0.x + (3.4375); + // frc r0.y, r1.x + temp0.y = frac(temp1.x); + // mul r1.x, r0.y, (16) + temp1.x = temp0.y * (16); + // frc r0.y, r1.x + temp0.y = frac(temp1.x); + // neg r1.y, r0.y + temp1.y = -temp0.y; + // add c28.x, r1.x, r1.y + expr28.x = temp1.x + temp1.y; + // add r1.x, r0.x, (4.125) + temp1.x = temp0.x + (4.125); + // add r1.y, r0.x, (4.8125) + temp1.y = temp0.x + (4.8125); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (16) + temp1.x = temp0.x * (16); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // neg r1.z, r0.x + temp1.z = -temp0.x; + // add c29.x, r1.x, r1.z + expr29.x = temp1.x + temp1.z; + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // mul r1.x, r0.x, (16) + temp1.x = temp0.x * (16); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // neg r1.y, r0.x + temp1.y = -temp0.x; + // add c30.x, r1.x, r1.y + expr30.x = temp1.x + temp1.y; + // mul r0.x, c0.x, (1.875) + temp0.x = Time.x * (1.875); + // add r1.x, r0.x, (3.4375) + temp1.x = temp0.x + (3.4375); + // frc r0.y, r1.x + temp0.y = frac(temp1.x); + // mul r1.x, r0.y, (16) + temp1.x = temp0.y * (16); + // frc r0.y, r1.x + temp0.y = frac(temp1.x); + // neg r1.y, r0.y + temp1.y = -temp0.y; + // add c31.x, r1.x, r1.y + expr31.x = temp1.x + temp1.y; + // add r1.x, r0.x, (4.125) + temp1.x = temp0.x + (4.125); + // add r1.y, r0.x, (4.8125) + temp1.y = temp0.x + (4.8125); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (16) + temp1.x = temp0.x * (16); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // neg r1.z, r0.x + temp1.z = -temp0.x; + // add c32.x, r1.x, r1.z + expr32.x = temp1.x + temp1.z; + // frc r0.x, r1.y + temp0.x = frac(temp1.y); + // mul r1.x, r0.x, (16) + temp1.x = temp0.x * (16); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // neg r1.y, r0.x + temp1.y = -temp0.x; + // add c33.x, r1.x, r1.y + expr33.x = temp1.x + temp1.y; + } + + Textured_VertexShader2_Output o; + float4 addr0; + float4 temp0; + // def c27, -1, 1, 0.25, 0 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mova a0.w, c28.x + addr0.w = expr28.x; + // add r0.x, v0.x, c11[a0.w].x + temp0.x = i.position.x + float1(0.957897); + // mova a0.w, c29.x + addr0.w = expr29.x; + // add r0.y, v0.y, c11[a0.w].x + temp0.y = i.position.y + float1(0.957897); + // mova a0.w, c30.x + addr0.w = expr30.x; + // add r0.z, v0.z, c11[a0.w].x + temp0.z = i.position.z + float1(0.957897); + // add r0.xyz, r0, c27.x + temp0.xyz = temp0.xyz + float3(-1, -1, -1); + // mov r0.w, c27.y + temp0.w = float1(1); + // dp4 oPos.x, r0, c34 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c35 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c36 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c37 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov r0.z, c27.z + temp0.z = float1(0.25); + // mova a0.w, c31.x + addr0.w = expr31.x; + // mad oD0.x, v2.x, c11[a0.w].x, r0.z + o.color.x = i.color.x * float1(0.957897) + temp0.z; + // mova a0.w, c32.x + addr0.w = expr32.x; + // mad oD0.y, v2.y, c11[a0.w].x, r0.z + o.color.y = i.color.y * float1(0.957897) + temp0.z; + // mova a0.w, c33.x + addr0.w = expr33.x; + // mad oD0.z, v2.z, c11[a0.w].x, r0.z + o.color.z = i.color.z * float1(0.957897) + temp0.z; + // mov oD0.w, c1.x + o.color.w = OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// DynamicParameter_PixelShader3 Pixel_2_0 Has PRES False +float4 DynamicParameter_PixelShader3() : COLOR +{ + float4 out_color; + // def c0, 1, 0, 0, 1 + // mov oC0, c0 + out_color = float4(1, 0, 0, 1); + // + + return out_color; +} + +// DynamicParameter_VertexShader4 Vertex_2_0 Has PRES False +float4 DynamicParameter_VertexShader4(float4 position : POSITION) : POSITION +{ + float4 out_position; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // + + return out_position; +} + +// Simplest_PixelShader5 Pixel_2_0 Has PRES False +float4 Simplest_PixelShader5() : COLOR +{ + float4 out_color; + // def c0, 1, 0, 0, 1 + // mov oC0, c0 + out_color = float4(1, 0, 0, 1); + // + + return out_color; +} + +// Simplest_VertexShader6 Vertex_2_0 Has PRES False +float4 Simplest_VertexShader6(float4 position : POSITION) : POSITION +{ + float4 out_position; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // + + return out_position; +} + +technique Simplest +{ + pass P0 + { + VertexShader = compile vs_2_0 Simplest_VertexShader6(); // 18 + PixelShader = compile ps_2_0 Simplest_PixelShader5(); // 19 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + ColorWriteEnable = 15; + AlphaTestEnable = 0; + } +} + +technique DynamicParameter +{ + pass P0 + { + VertexShader = compile vs_2_0 DynamicParameter_VertexShader4(); // 20 + PixelShader = compile ps_2_0 DynamicParameter_PixelShader3(); // 21 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + ColorWriteEnable = 15; + AlphaTestEnable = 0; + } +} + +technique Textured +{ + pass P0 + { + VertexShader = compile vs_2_0 Textured_VertexShader2(); // 22 + PixelShader = compile ps_2_0 Textured_PixelShader1(); // 23 + ZEnable = 1; + ZWriteEnable = 0; + CullMode = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaBlendEnable = 1; + ColorWriteEnable = 15; + AlphaTestEnable = 0; + } +} + diff --git a/fxlightning.fx b/fxlightning.fx new file mode 100644 index 0000000..4b663a4 --- /dev/null +++ b/fxlightning.fx @@ -0,0 +1,457 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride : register(vs_2_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124); +float Time : Time; +texture Texture_0 ; // 6 +sampler2D Texture_0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 8 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float3 ColorDiffuse : register(vs_2_0, c22) = { 1, 1, 1 }; +float EmissiveHDRMultipler : register(ps_2_0, c11) = { 1 }; +bool MultiTextureEnable : register(ps_2_0, c12) ; +float4 DiffuseCoordOffset : register(vs_2_0, c23) = { 0, 0, 1, 1 }; +bool MultiplyBlendEnable : register(ps_2_0, c13) ; +float EdgeFadeOut ; +texture Texture_1 ; // 21 +sampler2D Texture_1Sampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 23 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool UniqueWorldCoordEnable ; +float UniqueWorldCoordScalar : register(vs_2_0, c24) = { 0.01 }; +float UniqueWorldCoordStrength = { 1 }; +float DisplaceScalar : register(vs_2_0, c25) = { 1 }; +float DisplaceAmp : register(ps_2_0, c14) = { 1 }; +float DisplaceDivergenceAngle ; +float DisplaceSpeed = { 1 }; +bool UseRecolorColors : register(ps_2_0, c15) ; +bool CullingEnable = { 1 }; +// Default_Expression1 Expression_2_0 Has PRES False +float Default_Expression1() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c0.x, (-1) + temp0.x = MultiplyBlendEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // add c0.x, r0.x, (2) + expr0.x = temp0.x + (2); + return expr0; +} + +// Default_Expression2 Expression_2_0 Has PRES False +float Default_Expression2() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c0.x, (-1) + temp0.x = MultiplyBlendEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // mul r0.x, r2.x, (7) + temp0.x = temp2.x * (7); + // add c0.x, r0.x, (2) + expr0.x = temp0.x + (2); + return expr0; +} + +// Default_Expression3 Expression_2_0 Has PRES False +float Default_Expression3() +{ + float1 expr0; + // add c0.x, c0.x, (1) + expr0.x = CullingEnable.x + (1); + return expr0; +} + +// Default_PixelShader4 Pixel_2_0 Has PRES False +struct Default_PixelShader4_Input +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float texcoord4 : TEXCOORD4; +}; + +float4 Default_PixelShader4(Default_PixelShader4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, -1, 2.2, 0.5, 1 + // def c2, 0.35, 0, 0, 0 + // dcl t0 + // dcl t1 + // dcl t2 + // dcl t4.x + // dcl_2d s0 + // dcl_2d s1 + // mov r0.x, t2.z + temp0.x = i.texcoord2.z; + // mov r0.y, t2.w + temp0.y = i.texcoord2.w; + // texld r0, r0, s1 + temp0 = tex2D(Texture_1Sampler, temp0.xy); + // texld r1, t2, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord2.xy); + // add r2.yw, r0.y, r1.y + temp2.yw = temp0.y + temp1.y; + // add r2.xz, r0.x, r1.x + temp2.xz = temp0.x + temp1.x; + // add r0, r2, c1.x + temp0 = temp2 + float4(-1, -1, -1, -1); + // mad r0, r0, c14.x, t1 + temp0 = temp0 * DisplaceAmp.x + i.texcoord1; + // mov r1.x, r0.z + temp1.x = temp0.z; + // mov r1.y, r0.w + temp1.y = temp0.w; + // texld r0, r0, s0 + temp0 = tex2D(Texture_0Sampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(Texture_0Sampler, temp1.xy); + // mul r1, r0, r1 + temp1 = temp0 * temp1; + // cmp r0, -c12.x, r0, r1 + temp0 = (-MultiTextureEnable.x >= 0) ? temp0 : temp1; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c1.y + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r1.xyz, t0, c11.x + temp1.xyz = i.texcoord.xyz * EmissiveHDRMultipler.xxx; + // mul r1.w, t0.w, t0.w + temp1.w = i.texcoord.w * i.texcoord.w; + // mov r2.xyz, t0.w + temp2.xyz = i.texcoord.w; + // mov r2.w, c11.x + temp2.w = EmissiveHDRMultipler.x; + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mul r2, r0, r1 + temp2 = temp0 * temp1; + // mad r0, r1, -r0, c1.z + temp0 = temp1 * -temp0 + float4(0.5, 0.5, 0.5, 0.5); + // cmp r0, -c13.x, r2, r0 + temp0 = (-MultiplyBlendEnable.x >= 0) ? temp2 : temp0; + // mov r1.w, c1.w + temp1.w = float1(1); + // add r1.xyz, r1.w, -c0 + temp1.xyz = temp1.www + -RecolorColor.xyz; + // mov r2.xyz, c0 + temp2.xyz = RecolorColor.xyz; + // mad r1.xyz, r1, c2.x, r2 + temp1.xyz = temp1.xyz * float3(0.35, 0.35, 0.35) + temp2.xyz; + // mul r1.xyz, r0, r1 + temp1.xyz = temp0.xyz * temp1.xyz; + // cmp r1.xyz, -c15.x, r0, r1 + temp1.xyz = (-UseRecolorColors.xxx >= 0) ? temp0.xyz : temp1.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r1, t4.x + temp0.xyz = temp1.xyz * i.texcoord4.xxx; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_VertexShader5 Vertex_2_0 Has PRES True +struct Default_VertexShader5_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Default_VertexShader5_Output +{ + float4 texcoord2 : TEXCOORD2; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float texcoord4 : TEXCOORD4; +}; + +Default_VertexShader5_Output Default_VertexShader5(Default_VertexShader5_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 5 + Mappings: 3 + 0 - ConstOutput: 17 ConstInput 3 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c0.x, c8.x + temp0.x = Time.x * DisplaceSpeed.x; + // mul c14.x, r0.x, (0.01) + expr14.x = temp0.x * (0.01); + // add r0.x, c6.x, (-1) + temp0.x = UniqueWorldCoordEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + // rcp c15.x, c5.x + expr15.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-1) + temp0.x = MultiplyBlendEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c18.x, r0.x, r1.x + expr18.x = temp0.x >= temp1.x; + // neg r0.xyz, c1.xyz + temp0.xyz = -ColorDiffuse.xyz; + // add c17.xyz, (1, 1, 1), r0.xyz + expr17.xyz = float3(1, 1, 1) + temp0.xyz; + // mul r0.xy, c0.x, c3.xy + temp0.xy = Time.x * DiffuseCoordOffset.xy; + // frc c19.xy, r0.xy + expr19.xy = frac(temp0.xy); + // add r0.x, c2.x, (-1) + temp0.x = MultiTextureEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c21.x, r0.x, r1.x + expr21.x = temp0.x >= temp1.x; + // mul r0.x, c7.x, (0.0027777312217828493) + temp0.x = DisplaceDivergenceAngle.x * (0.0027777312217828493); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // cos r1.x, r0.x + temp1.x = cos(temp0.x); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // mov c12.x, r1.y + expr12.x = temp1.y; + // mov c13.x, r1.x + expr13.x = temp1.x; + } + + Default_VertexShader5_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0.1, 0 + // def c2, -2, 3, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // add r0.x, r1.x, r1.y + temp0.x = temp1.x + temp1.y; + // mul r0.x, r0.x, c24.x + temp0.x = temp0.x * UniqueWorldCoordScalar.x; + // mul r0.x, r0.x, c11.x + temp0.x = temp0.x * expr11.x; + // mul r0.yz, v2.xxyw, c25.x + temp0.yz = i.texcoord.xy * DisplaceScalar.xx; + // mad r0.x, r0.x, c0.z, r0.z + temp0.x = temp0.x * float1(0.1) + temp0.z; + // mul r0.z, r0.x, c13.x + temp0.z = temp0.x * expr13.x; + // mad oT2.y, r0.y, -c12.x, r0.z + o.texcoord2.y = temp0.y * -expr12.x + temp0.z; + // mad oT2.w, r0.y, c12.x, r0.z + o.texcoord2.w = temp0.y * expr12.x + temp0.z; + // mul r0.y, r0.y, c13.x + temp0.y = temp0.y * expr13.x; + // mad r0.z, r0.x, c12.x, r0.y + temp0.z = temp0.x * expr12.x + temp0.y; + // mad r0.x, r0.x, -c12.x, r0.y + temp0.x = temp0.x * -expr12.x + temp0.y; + // add oT2.xz, r0.zyxw, c14.x + o.texcoord2.xz = temp0.zx + expr14.xx; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xyz, -r1, c123 + temp0.xyz = -temp1.xyz + EyePosition.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.x, r1, r0 + temp0.x = dot(temp1.xyz, temp0.xyz); + // abs r0.x, r0.x + temp0.x = abs(temp0.x); + // mul r0.x, r0.x, c15.x + temp0.x = temp0.x * expr15.x; + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // min r0.x, r0.x, c0.x + temp0.x = min(temp0.x, float1(1)); + // mad r0.y, r0.x, c2.x, c2.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r0.w, r0.x, v3.w + temp0.w = temp0.x * i.color.w; + // mov r1.xy, c0 + temp1.xy = float2(1, 0); + // mad r2, c22.xyzx, r1.xxxy, r1.yyyx + temp2 = ColorDiffuse.xyzx * temp1.xxxy + temp1.yyyx; + // mul r0.xyz, v3, c1.x + temp0.xyz = i.color.xyz * OpacityOverride.xxx; + // mul r2, r0, r2 + temp2 = temp0 * temp2; + // mad r1, c17.xyzx, r1.xxxy, r1.yyyx + temp1 = expr17.xyzx * temp1.xxxy + temp1.yyyx; + // mad r0, r0, r1, -r2 + temp0 = temp0 * temp1 + -temp2; + // mad oT0, c18.x, r0, r2 + o.texcoord = expr18.x * temp0 + temp2; + // mul r0.xy, v2, c23.zwzw + temp0.xy = i.texcoord.xy * DiffuseCoordOffset.zw; + // mov r0.zw, c23 + temp0.zw = DiffuseCoordOffset.zw; + // mad r0.xy, r0, r0.zwzw, -c19 + temp0.xy = temp0.xy * temp0.zw + -expr19.xy; + // mad r0.zw, v2.xyxy, r0, c19.xyxy + temp0.zw = i.texcoord.xy * temp0.zw + expr19.xy; + // add r0.xy, r0, -r0.zwzw + temp0.xy = temp0.xy + -temp0.zw; + // mad oT1.zw, c21.x, r0.xyxy, r0 + o.texcoord1.zw = expr21.xx * temp0.xy + temp0.zw; + // mov oT1.xy, r0.zwzw + o.texcoord1.xy = temp0.zw; + // mov oT4.x, c0.x + o.texcoord4 = float4(1, 1, 1, 1); + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader5(); // 41 + PixelShader = compile ps_2_0 Default_PixelShader4(); // 42 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + AlphaBlendEnable = 1; + CullMode = Default_Expression3(); // 0 + SrcBlend = Default_Expression2(); // 0 + DestBlend = Default_Expression1(); // 0 + } +} + diff --git a/fxprotoncollider.fx b/fxprotoncollider.fx new file mode 100644 index 0000000..964b5bf --- /dev/null +++ b/fxprotoncollider.fx @@ -0,0 +1,368 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride : register(vs_2_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124); +float Time : Time; +texture Texture_0 ; // 6 +sampler2D Texture_0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 8 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float3 ColorDiffuse : register(vs_2_0, c18) = { 1, 1, 1 }; +float EmissiveHDRMultipler : register(ps_2_0, c11) = { 1 }; +bool MultiTextureEnable : register(ps_2_0, c12) ; +float4 DiffuseCoordOffset : register(vs_2_0, c19) = { 0, 0, 1, 1 }; +texture Texture_1 ; // 18 +sampler2D Texture_1Sampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 20 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool UniqueWorldCoordEnable ; +float UniqueWorldCoordScalar : register(vs_2_0, c20) = { 0.01 }; +float UniqueWorldCoordStrength : register(vs_2_0, c21) = { 1 }; +float DisplaceScalar : register(vs_2_0, c22) = { 1 }; +float DisplaceAmp : register(ps_2_0, c13) = { 1 }; +float DisplaceDivergenceAngle ; +float DisplaceSpeed = { 1 }; +texture Texture_2 ; // 36 +sampler2D Texture_2Sampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 38 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +bool UseRecolorColors : register(ps_2_0, c14) ; +bool CullingEnable = { 1 }; +// Default_Expression1 Expression_2_0 Has PRES False +float Default_Expression1() +{ + float1 expr0; + // add c0.x, c0.x, (1) + expr0.x = CullingEnable.x + (1); + return expr0; +} + +// Default_PixelShader2 Pixel_2_0 Has PRES False +struct Default_PixelShader2_Input +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float texcoord3 : TEXCOORD3; + float texcoord4 : TEXCOORD4; +}; + +float4 Default_PixelShader2(Default_PixelShader2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, -1, 2.2, 1, 0.35 + // dcl t0 + // dcl t1 + // dcl t2 + // dcl t3.x + // dcl t4.x + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.x, t2.z + temp0.x = i.texcoord2.z; + // mov r0.y, t2.w + temp0.y = i.texcoord2.w; + // texld r0, r0, s1 + temp0 = tex2D(Texture_1Sampler, temp0.xy); + // texld r1, t2, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord2.xy); + // add r2.yw, r0.y, r1.y + temp2.yw = temp0.y + temp1.y; + // add r2.xz, r0.x, r1.x + temp2.xz = temp0.x + temp1.x; + // add r0, r2, c1.x + temp0 = temp2 + float4(-1, -1, -1, -1); + // mad r0, r0, c13.x, t1 + temp0 = temp0 * DisplaceAmp.x + i.texcoord1; + // mov r1.x, r0.z + temp1.x = temp0.z; + // mov r1.y, r0.w + temp1.y = temp0.w; + // mov r2.xy, t1 + temp2.xy = i.texcoord1.xy; + // add r2.xy, r2, -t3.x + temp2.xy = temp2.xy + -i.texcoord3.xx; + // texld r0, r0, s0 + temp0 = tex2D(Texture_0Sampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(Texture_0Sampler, temp1.xy); + // texld r2, r2, s2 + temp2 = tex2D(Texture_2Sampler, temp2.xy); + // mul r1.xyz, r0, r1 + temp1.xyz = temp0.xyz * temp1.xyz; + // cmp r0.xyz, -c12.x, r0, r1 + temp0.xyz = (-MultiTextureEnable.xxx >= 0) ? temp0.xyz : temp1.xyz; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.y + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, t0, c11.x + temp0.xyz = i.texcoord.xyz * EmissiveHDRMultipler.xxx; + // mul r0.xyz, r0, t0.w + temp0.xyz = temp0.xyz * i.texcoord.www; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov r1.zw, c1 + temp1.zw = float2(1, 0.35); + // lrp r3.xyz, r1.w, r1.z, c0 + temp3.xyz = lerp(RecolorColor.xyz, temp1.zzz, temp1.www); + // mul r1.xyz, r0, r3 + temp1.xyz = temp0.xyz * temp3.xyz; + // cmp r0.xyz, -c14.x, r0, r1 + temp0.xyz = (-UseRecolorColors.xxx >= 0) ? temp0.xyz : temp1.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, t4.x + temp0.xyz = temp0.xyz * i.texcoord4.xxx; + // mov r0.w, c1.z + temp0.w = float1(1); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_VertexShader3 Vertex_2_0 Has PRES True +struct Default_VertexShader3_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Default_VertexShader3_Output +{ + float4 texcoord2 : TEXCOORD2; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float texcoord3 : TEXCOORD3; + float texcoord4 : TEXCOORD4; +}; + +Default_VertexShader3_Output Default_VertexShader3(Default_VertexShader3_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 5 + Mappings: 2 + 0 - ConstOutput: 17 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c0.x, c5.x + temp0.x = Time.x * DisplaceSpeed.x; + // mul c14.x, r0.x, (0.01) + expr14.x = temp0.x * (0.01); + // add r0.x, c3.x, (-1) + temp0.x = UniqueWorldCoordEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + // mul r0.xy, c0.x, c2.xy + temp0.xy = Time.x * DiffuseCoordOffset.xy; + // frc c15.xy, r0.xy + expr15.xy = frac(temp0.xy); + // add r0.x, c1.x, (-1) + temp0.x = MultiTextureEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c17.x, r0.x, r1.x + expr17.x = temp0.x >= temp1.x; + // mul r0.x, c4.x, (0.0027777312217828493) + temp0.x = DisplaceDivergenceAngle.x * (0.0027777312217828493); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // cos r1.x, r0.x + temp1.x = cos(temp0.x); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // mov c12.x, r1.y + expr12.x = temp1.y; + // mov c13.x, r1.x + expr13.x = temp1.x; + } + + Default_VertexShader3_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0.01, -3 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul r0.xy, v1, c22.x + temp0.xy = i.texcoord.xy * DisplaceScalar.xx; + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r2.x, r1, c124 + temp2.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r2.y, r1, c125 + temp2.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 r2.z, r1, c126 + temp2.z = dot(temp1, (World._m02_m12_m22_m32)); + // mul r0.zw, r2.xyxy, c20.x + temp0.zw = temp2.xy * UniqueWorldCoordScalar.xx; + // mul r0.zw, r0, c21.x + temp0.zw = temp0.zw * UniqueWorldCoordStrength.xx; + // mad r0.zw, r0, c0.z, -r0.xyxy + temp0.zw = temp0.zw * float2(0.01, 0.01) + -temp0.xy; + // mad r0.xy, c11.x, r0.zwzw, r0 + temp0.xy = expr11.xx * temp0.zw + temp0.xy; + // mul r0.zw, r0.xyxy, c13.x + temp0.zw = temp0.xy * expr13.xx; + // mad oT2.y, r0.x, -c12.x, r0.w + o.texcoord2.y = temp0.x * -expr12.x + temp0.w; + // mul r1.x, r0.y, c12.x + temp1.x = temp0.y * expr12.x; + // mad r1.x, r0.x, c13.x, r1.x + temp1.x = temp0.x * expr13.x + temp1.x; + // add oT2.x, r1.x, c14.x + o.texcoord2.x = temp1.x + expr14.x; + // mad oT2.w, r0.x, c12.x, r0.w + o.texcoord2.w = temp0.x * expr12.x + temp0.w; + // mad r0.x, r0.y, -c12.x, r0.z + temp0.x = temp0.y * -expr12.x + temp0.z; + // add oT2.z, r0.x, c14.x + o.texcoord2.z = temp0.x + expr14.x; + // mov r2.w, c0.x + temp2.w = float1(1); + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xyw, c0 + temp0.xyw = float3(1, 0, -3); + // mad r1, c18.xyzx, r0.xxxy, r0.yyyx + temp1 = ColorDiffuse.xyzx * temp0.xxxy + temp0.yyyx; + // mul oT0, r1, v2 + o.texcoord = temp1 * i.color; + // mul r0.yz, v1.xxyw, c19.xzww + temp0.yz = i.texcoord.xy * DiffuseCoordOffset.zw; + // mov r1.zw, c19 + temp1.zw = DiffuseCoordOffset.zw; + // mad r0.yz, r0, r1.xzww, -c15.xxyw + temp0.yz = temp0.yz * temp1.zw + -expr15.xy; + // mad r1.xy, v1, r1.zwzw, c15 + temp1.xy = i.texcoord.xy * temp1.zw + expr15.xy; + // add r0.yz, r0, -r1.xxyw + temp0.yz = temp0.yz + -temp1.xy; + // mad oT1.zw, c17.x, r0.xyyz, r1.xyxy + o.texcoord1.zw = expr17.xx * temp0.yz + temp1.xy; + // mov oT1.xy, r1 + o.texcoord1.xy = temp1.xy; + // mad oT3.x, c1.x, -r0.w, -r0.x + o.texcoord3 = OpacityOverride.x * -temp0.w + -temp0.x; + // mov oT4.x, c0.x + o.texcoord4 = float4(1, 1, 1, 1); + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader3(); // 43 + PixelShader = compile ps_2_0 Default_PixelShader2(); // 44 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + AlphaBlendEnable = 1; + CullMode = Default_Expression1(); // 0 + SrcBlend = 2; + DestBlend = 2; + } +} + diff --git a/gpuparticle.fx b/gpuparticle.fx new file mode 100644 index 0000000..8b8eb86 --- /dev/null +++ b/gpuparticle.fx @@ -0,0 +1,3216 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_2_0, c54) : register(vs_3_0, c57) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_2_0, c75) : register(vs_3_0, c82) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c65) : register(vs_3_0, c68) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTextureSampler ; // 8 +sampler2D ParticleTextureSamplerSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 15 +sampler2D NextFrameTextureSamplerSampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture DepthTexture ; // 22 +sampler2D DepthTextureSampler : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 24 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +bool ShouldDrawParticleSoft ; +column_major float4x4 WorldView : WorldView : register(vs_3_0, c74); +column_major float4x4 Projection : Projection : register(vs_3_0, c78); +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c71); +column_major float4x3 View : View : register(vs_2_0, c78) : register(vs_3_0, c85); +row_major float4x4 ProjectionI : ProjectionInverse; +float Time : Time; +// PS_Array_H_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_0(PS_Array_H_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v4.y, v4.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v2, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v2.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c0.z + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul oC0.xyz, r0.x, r1 + out_color.xyz = temp0.xxx * temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_1(PS_Array_H_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, -1 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c0.z + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mad r0.xyz, r1, r0.x, c0.w + temp0.xyz = temp1.xyz * temp0.xxx + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, -c0.w + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_2(PS_Array_H_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c0.z + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_3(PS_Array_H_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.5, -0.5, 2.2, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v2, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v2.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r1, r0, s2 + temp1 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r1.x, -v4.y, v4.x + temp0.x = saturate(temp1.x * -i.texcoord5.y + i.texcoord5.x); + // mul oC0.w, r0.w, r0.x + out_color.w = temp0.w * temp0.x; + // + + return out_color; +} + +// PS_Array_H_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_4(PS_Array_H_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, -1 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // log r0.y, r1.y + temp0.y = log2(temp1.y); + // log r0.z, r1.z + temp0.z = log2(temp1.z); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xyz, r1, c0.w + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, -c0.w + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_5(PS_Array_H_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // log r0.y, r1.y + temp0.y = log2(temp1.y); + // log r0.z, r1.z + temp0.z = log2(temp1.z); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_6_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_6(PS_Array_H_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v2, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v2.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // + + return out_color; +} + +// PS_Array_H_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_7_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_7(PS_Array_H_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, -1, 1, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xyz, r1, c0.y + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.z + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_8_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_8(PS_Array_H_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +PixelShader PS_Array_H[9] = { + compile ps_3_0 PS_Array_H_Shader_0(), // 29 + compile ps_3_0 PS_Array_H_Shader_1(), // 30 + compile ps_3_0 PS_Array_H_Shader_2(), // 31 + compile ps_3_0 PS_Array_H_Shader_3(), // 32 + compile ps_3_0 PS_Array_H_Shader_4(), // 33 + compile ps_3_0 PS_Array_H_Shader_5(), // 34 + compile ps_3_0 PS_Array_H_Shader_6(), // 35 + compile ps_3_0 PS_Array_H_Shader_7(), // 36 + compile ps_3_0 PS_Array_H_Shader_8(), // 37 +}; +// PS_Array_M_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_0(PS_Array_M_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl t0.xy + // dcl v0 + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v0 + temp0 = temp2 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_M_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_1(PS_Array_M_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, -1, 1, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t1.xyz + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mad r0.xyz, r2, v0, c0.x + temp0.xyz = temp2.xyz * i.color.xyz + float3(-1, -1, -1); + // mul r1.w, r2.w, v0.w + temp1.w = temp2.w * i.color.w; + // mov_sat r2.xyz, t1 + temp2.xyz = saturate(i.texcoord1.xyz); + // mad r1.xyz, r2, r0, c0.y + temp1.xyz = temp2.xyz * temp0.xyz + float3(1, 1, 1); + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_M_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_2(PS_Array_M_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl t0.xy + // dcl v0 + // dcl t1.xyz + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v0 + temp0 = temp2 * i.color; + // mov_sat r1.xyz, t1 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_Array_M[3] = { + compile ps_2_0 PS_Array_M_Shader_0(), // 41 + compile ps_2_0 PS_Array_M_Shader_1(), // 42 + compile ps_2_0 PS_Array_M_Shader_2(), // 43 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord2 : TEXCOORD2) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t2.x + // mov r0, t2.x + temp0 = texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 50 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 51 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 52 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 53 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 54 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 55 +}; +// _CreateShadowMap_Expression19 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression19() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader20 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader20_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader20_Output +{ + float4 position : POSITION; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +_CreateShadowMap_VertexShader20_Output _CreateShadowMap_VertexShader20(_CreateShadowMap_VertexShader20_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + _CreateShadowMap_VertexShader20_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.w, c27[a0.y].x, -r2.y, r1.w + temp1.w = float1(-0.5) * -temp2.y + temp1.w; + // mov r2.xy, c27[a0.y] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c37, c37.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // mul r3.xyz, r1.w, c79 + temp3.xyz = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r1.yzw, c78.xxyz, r1.y, r3.xxyz + temp1.yzw = (View._m00_m10_m20_m30).xyz * temp1.yyy + temp3.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c66 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c65 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.z, r3.z, c28.w + temp2.z = temp3.z + float1(-1); + // mul r2.z, r2.z, r2.z + temp2.z = temp2.z * temp2.z; + // sge r2.z, -r2.z, r2.z + temp2.z = (-temp2.z >= temp2.z) ? 1 : 0; + // lrp r4.x, r2.z, c29.z, r3.z + temp4.x = lerp(temp3.z, float1(1.0001), temp2.z); + // log r2.z, r4.x + temp2.z = log2(temp4.x); + // mul r2.w, r2.z, c29.w + temp2.w = temp2.z * float1(0.6931472); + // mul r2.z, r0.z, r2.z + temp2.z = temp0.z * temp2.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r2.z, r2.z + temp2.z = exp2(temp2.z); + // add r2.z, r2.z, c28.w + temp2.z = temp2.z + float1(-1); + // mul r2.z, r2.w, r2.z + temp2.z = temp2.w * temp2.z; + // mad r2.z, r3.y, r2.z, r3.x + temp2.z = temp3.y * temp2.z + temp3.x; + // mad r3.xyz, r2.z, r1.yzww, r0.xyww + temp3.xyz = temp2.zzz * temp1.yzw + temp0.xyw; + // mov r3.w, -c28.w + temp3.w = float1(1); + // dp4 oPos.x, r3, c71 + o.position.x = dot(temp3, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r3, c72 + o.position.y = dot(temp3, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r3, c74 + temp0.y = dot(temp3, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r3, c73 + temp0.x = dot(temp3, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r3.x, r0.x, c40.x + temp3.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r2.z, r1.y, r0.w, -r0.w + temp2.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r2.z, c54.x + temp0.x = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r2, r0 + temp0.xy = temp2.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r3.w, r1.x, r1.y, r1.z + temp3.w = temp1.x * temp1.y + temp1.z; + // mov r1.yw, c27.z + temp1.yw = float2(0, 0); + // mul r2.z, r0.z, c63.x + temp2.z = temp0.z * Draw.SpeedMultiplier.x; + // min r3.y, r2.z, c40.x + temp3.y = min(temp2.z, expr40.x); + // frc r1.xz, r3.yyxw + temp1.xz = frac(temp3.yx); + // add r1, r3.ywxw, -r1 + temp1 = temp3.ywxw + -temp1; + // add r1, r2.xyxy, r1 + temp1 = temp2.xyxy + temp1; + // mul r4.xy, r1.zwzw, c46.x + temp4.xy = temp1.zw * expr46.xx; + // frc r0.w, r2.z + temp0.w = frac(temp2.z); + // mul r1.z, r2.z, c50.x + temp1.z = temp2.z * expr50.x; + // frc r4.zw, r3.xyyx + temp4.zw = frac(temp3.yx); + // add r5.xz, r3.yyxw, -r4.zyww + temp5.xz = temp3.yx + -temp4.zw; + // lrp r6.xyz, c51.x, r4, r0.xyww + temp6.xyz = lerp(temp0.xyw, temp4.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r2.zw, r0.xyxy + temp2.zw = frac(temp0.xy); + // add r0.xy, r0, -r2.zwzw + temp0.xy = temp0.xy + -temp2.zw; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r3.xy, c64 + temp3.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r3.y, r3.x + temp0.y = float1(0.957897) * temp3.y + temp3.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.w, r0.x, -r0.w + temp1.w = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r3.z, r0.x, r0.w, r1.w + temp3.z = temp0.x * temp0.w + temp1.w; + // add r0.xw, r2.xyzy, r3.zyzw + temp0.xw = temp2.xy + temp3.zw; + // mul r3.xy, r0.xwzw, c46.x + temp3.xy = temp0.xw * expr46.xx; + // mov r3.z, c27.z + temp3.z = float1(0); + // lrp r7.xyz, c52.x, r3, r6 + temp7.xyz = lerp(temp6.xyz, temp3.xyz, expr52.xxx); + // mov r5.w, c48.x + temp5.w = expr48.x; + // add r2.zw, r2.xyxy, r5 + temp2.zw = temp2.xy + temp5.zw; + // mul r4.xy, r2.zwzw, c46.x + temp4.xy = temp2.zw * expr46.xx; + // add r3.xyz, r4, -r7 + temp3.xyz = temp4.xyz + -temp7.xyz; + // mad oT3.xyz, c53.x, r3, r7 + o.texcoord3 = expr53.x * temp3 + temp7; + // abs r1.w, r1.z + temp1.w = abs(temp1.z); + // sge r1.z, r1.z, -r1.z + temp1.z = (temp1.z >= -temp1.z) ? 1 : 0; + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // lrp r2.z, r1.z, r1.w, -r1.w + temp2.z = lerp(-temp1.w, temp1.w, temp1.z); + // mul r1.z, r2.z, c54.y + temp1.z = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.z, r1.w + temp2.z = abs(temp1.w); + // frc r2.z, r2.z + temp2.z = frac(temp2.z); + // sge r2.w, r1.w, -r1.w + temp2.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r1.z, r3.x, c54.x + temp1.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1 + temp2.zw = frac(temp1.zw); + // add r1.zw, r1, -r2 + temp1.zw = temp1.zw + -temp2.zw; + // add r1.zw, r2.xyxy, r1 + temp1.zw = temp2.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r5.y, c45.x + temp5.y = expr45.x; + // add r1.xy, r2, r5 + temp1.xy = temp2.xy + temp5.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, c27.z + o.texcoord1 = float4(0, 0, 0, 0); + // + + return o; +} + +// Default_L_PixelShader21 Pixel_2_0 Has PRES False +struct Default_L_PixelShader21_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 Default_L_PixelShader21(Default_L_PixelShader21_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_L_VertexShader22 Vertex_2_0 Has PRES True +struct Default_L_VertexShader22_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_L_VertexShader22_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +Default_L_VertexShader22_Output Default_L_VertexShader22(Default_L_VertexShader22_Input i) +{ + /* + PRSI + OutputRegisterOffset: 38 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 38 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 44 ConstInput 2 + 1 - ConstOutput: 47 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr38; + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c38.x, c1.x, (30) + expr38.x = Time.x * (30); + // add c39.x, c0.x, (-1) + expr39.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c49.x, r1.x, r0.y + expr49.x = temp1.x < temp0.y; + // mul c50.x, r0.x, r2.x + expr50.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c44.x, r2.z, r0.x + expr44.x = temp2.z + temp0.x; + // rcp c45.x, c0.x + expr45.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c48.x, r0.x, r1.x + expr48.x = temp0.x >= temp1.x; + // rcp c47.x, c0.y + expr47.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + Default_L_VertexShader22_Output o; + float4 temp0, temp1, temp2, temp3, addr0, temp4; + float2 temp5; + // def c36, 2.0625, 6.1875, 1.375, 4.8125 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c37, 1, -1, 0.5, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.xyz, c62 + temp0.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mov r0.w, c73.y + temp0.w = Physics.VelocityDampingRange.y; + // mov r1.xyz, c61 + temp1.xyz = Update.Size_Rate_Damping__Min.xyz; + // mov r1.w, c73.x + temp1.w = Physics.VelocityDampingRange.x; + // mov r2.w, c27.w + temp2.w = float1(0.1875); + // mad r2, v2.x, r2.w, c36 + temp2 = i.texcoord1.x * temp2.w + float4(2.0625, 6.1875, 1.375, 4.8125); + // frc r2, r2 + temp2 = frac(temp2); + // mul r2, r2, c28.z + temp2 = temp2 * float4(16, 16, 16, 16); + // frc r3, r2 + temp3 = frac(temp2); + // add r2, r2, -r3 + temp2 = temp2 + -temp3; + // mova a0, r2 + addr0 = temp2; + // mad r0, c11[a0.x], r0, r1 + temp0 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp0 + temp1; + // add r1.xy, r0.zwzw, c28.w + temp1.xy = temp0.zw + float2(-1, -1); + // mul r1.xy, r1, r1 + temp1.xy = temp1.xy * temp1.xy; + // sge r1.xy, -r1, r1 + temp1.xy = (-temp1.xy >= temp1.xy) ? 1 : 0; + // lrp r2.xy, r1, c29.z, r0.zwzw + temp2.xy = lerp(temp0.zw, float2(1.0001, 1.0001), temp1.xy); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.x, r0.z, c29.w + temp1.x = temp0.z * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add r1.y, -v1.w, c38.x + temp1.y = -i.texcoord.w + expr38.x; + // mul r0.z, r0.z, r1.y + temp0.z = temp0.z * temp1.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c28.w + temp0.z = temp0.z + float1(-1); + // mul r0.z, r1.x, r0.z + temp0.z = temp1.x * temp0.z; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xzw, v1.xyyz, r0.z, r2.xyyz + temp1.xzw = i.texcoord.xyz * temp0.zzz + temp2.xyz; + // mul r0.z, r1.y, -c27.x + temp0.z = temp1.y * float1(0.5); + // mov r2.xyz, c71 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.z, r2, c72 + temp2.xyz = temp0.zzz * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xzw, r2.xyyz, r1.y, r1 + temp1.xzw = temp2.xyz * temp1.yyy + temp1.xzw; + // add r2.xyz, r1.xzzw, -v0.xyyw + temp2.xyz = temp1.xzz + -i.position.xyy; + // mov r3.xy, c64 + temp3.xy = Update.XYRotation_Rate_Damping__Spread.xy; + // mov r3.zw, c66.xyxy + temp3.zw = Update.ZRotation_Rate_Damping__Spread.xy; + // mov r4.xy, c63 + temp4.xy = Update.XYRotation_Rate_Damping__Min.xy; + // mov r4.zw, c65.xyxy + temp4.zw = Update.ZRotation_Rate_Damping__Min.xy; + // mad r3, c11[a0.y], r3, r4 + temp3 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp3 + temp4; + // mad r3.xy, r3.ywzw, r1.y, r3.xzzw + temp3.xy = temp3.yw * temp1.yy + temp3.xz; + // mad r3.xy, r3, c30.z, c30.y + temp3.xy = temp3.xy * float2(0.15915494, 0.15915494) + float2(0.5, 0.5); + // frc r3.xy, r3 + temp3.xy = frac(temp3.xy); + // mad r3.xy, r3, c31.z, c31.w + temp3.xy = temp3.xy * float2(6.2831855, 6.2831855) + float2(-3.1415927, -3.1415927); + // sincos r4.xy, r3.x, c0, c1 + temp4.xy = float2(cos(temp3.x), sin(temp3.x)); + // sincos r5.xy, r3.y, c0, c1 + temp5.xy = float2(cos(temp3.y), sin(temp3.y)); + // mul r2.yzw, r2.xxyz, r4.xxyx + temp2.yzw = temp2.xyz * temp4.xyx; + // mad r2.w, r2.x, -r4.y, r2.w + temp2.w = temp2.x * -temp4.y + temp2.w; + // add r2.x, r2.z, r2.y + temp2.x = temp2.z + temp2.y; + // add r1.xz, r2.xyww, v0.xyyw + temp1.xz = temp2.xw + i.position.xy; + // slt r0.z, v0.w, r1.y + temp0.z = (i.position.w < temp1.y) ? 1 : 0; + // mad r0.z, r0.z, -v2.y, v2.y + temp0.z = temp0.z * -i.texcoord1.y + i.texcoord1.y; + // frc r2.x, r0.z + temp2.x = frac(temp0.z); + // add r0.z, r0.z, -r2.x + temp0.z = temp0.z + -temp2.x; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.xyz, r5.xyxw, c27[a0.x].xyyw + temp2.xyz = temp5.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c27[a0.x].x, -r5.y, r2.z + temp0.z = float1(-0.5) * -temp5.y + temp2.z; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c37.xyxy, c37.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r2.x, r2.y, r2.x + temp2.x = temp2.y + temp2.x; + // mul r3.xyz, r0.z, c75 + temp3.xyz = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r3.xyz, c74, r2.x, r3 + temp3.xyz = (View._m00_m10_m20_m30).xyz * temp2.xxx + temp3.xyz; + // mul r0.z, r0.w, c29.w + temp0.z = temp0.w * float1(0.6931472); + // mul r0.w, r0.w, r1.y + temp0.w = temp0.w * temp1.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c28.w + temp0.w = temp0.w + float1(-1); + // mul r0.z, r0.z, r0.w + temp0.z = temp0.z * temp0.w; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r0.xyz, r0.x, r3, r1.xzww + temp0.xyz = temp0.xxx * temp3.xyz + temp1.xzw; + // mov r0.w, -c28.w + temp0.w = float1(1); + // dp4 oPos.x, r0, c67 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c68 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c69 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c70 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mul r0.x, r1.y, c60.x + temp0.x = temp1.y * Draw.SpeedMultiplier.x; + // mul r0.y, r0.x, c47.x + temp0.y = temp0.x * expr47.x; + // min r0.x, r0.x, c39.x + temp0.x = min(temp0.x, expr39.x); + // abs r1.x, r0.y + temp1.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // lrp r2.x, r0.y, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp0.y); + // mul r0.y, r2.x, c51.y + temp0.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.y, c45.x + temp1.z = temp0.y * expr45.x; + // abs r0.y, r1.z + temp0.y = abs(temp1.z); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // sge r1.w, r1.z, -r1.z + temp1.w = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r2.x, r1.w, r0.y, -r0.y + temp2.x = lerp(-temp0.y, temp0.y, temp1.w); + // mul r1.x, r2.x, c51.x + temp1.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.xzzw + temp2.xy = frac(temp1.xz); + // add r1.xz, r1, -r2.xyyw + temp1.xz = temp1.xz + -temp2.xy; + // add r1.xz, r2.zyww, r1 + temp1.xz = temp2.zw + temp1.xz; + // mul r1.xz, r1, c45.x + temp1.xz = temp1.xz * expr45.xx; + // mov r2.x, c51.x + temp2.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r2.x, c11[a0.z].x + temp0.y = temp2.x * float1(0.957897); + // mul r1.w, r2.x, c11[a0.w].x + temp1.w = temp2.x * float1(0.957897); + // frc r2.x, r0.y + temp2.x = frac(temp0.y); + // add r2.y, r0.y, -r2.x + temp2.y = temp0.y + -temp2.x; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // mad r0.w, r0.y, r2.x, r2.y + temp0.w = temp0.y * temp2.x + temp2.y; + // mov r3.z, c27.z + temp3.z = float1(0); + // frc r3.xy, r0.x + temp3.xy = frac(temp0.x); + // add r2.xy, r0.xwzw, -r3.yzzw + temp2.xy = temp0.xw + -temp3.yz; + // add r0.x, r0.x, -r3.x + temp0.x = temp0.x + -temp3.x; + // add r2.xy, r2.zwzw, r2 + temp2.xy = temp2.zw + temp2.xy; + // mad r2.xy, r2, c45.x, -r1.xzzw + temp2.xy = temp2.xy * expr45.xx + -temp1.xz; + // mad r1.xz, c48.x, r2.xyyw, r1 + temp1.xz = expr48.xx * temp2.xy + temp1.xz; + // frc r2.x, r1.w + temp2.x = frac(temp1.w); + // add r2.y, r1.w, -r2.x + temp2.y = temp1.w + -temp2.x; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // slt r1.w, r1.w, -r1.w + temp1.w = (temp1.w < -temp1.w) ? 1 : 0; + // mad r0.z, r1.w, r2.x, r2.y + temp0.z = temp1.w * temp2.x + temp2.y; + // add r0.zw, r2, r0 + temp0.zw = temp2.zw + temp0.zw; + // mad r0.zw, r0, c45.x, -r1.xyxz + temp0.zw = temp0.zw * expr45.xx + -temp1.xz; + // mad r0.zw, c49.x, r0, r1.xyxz + temp0.zw = expr49.xx * temp0.zw + temp1.xz; + // mov r0.y, c44.x + temp0.y = expr44.x; + // add r0.xy, r2.zwzw, r0 + temp0.xy = temp2.zw + temp0.xy; + // mad r0.xy, r0, c45.x, -r0.zwzw + temp0.xy = temp0.xy * expr45.xx + -temp0.zw; + // mad oT0.xy, c50.x, r0, r0.zwzw + o.texcoord = expr50.x * temp0 + temp0.zwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.y, r0.x + temp0.x = temp1.y * temp0.x; + // mov r1, c54 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c55 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c56 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c57 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c58 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c52 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c53 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // add r1, r3, -r4 + temp1 = temp3 + -temp4; + // mad oD0, r0.y, r1, r4 + o.color = temp0.y * temp1 + temp4; + // + + return o; +} + +// Default_M_Expression23 Expression_2_0 Has PRES False +float Default_M_Expression23() +{ + float1 expr0; + // mov c0.x, (0) + expr0.x = (0); + return expr0; +} + +// Default_M_VertexShader24 Vertex_2_0 Has PRES True +struct Default_M_VertexShader24_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader24_Output +{ + float4 position : POSITION; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +Default_M_VertexShader24_Output Default_M_VertexShader24(Default_M_VertexShader24_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + Default_M_VertexShader24_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c37, 1, -1, 0.5, 0 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.w, c27[a0.y].x, -r2.y, r1.w + temp1.w = float1(-0.5) * -temp2.y + temp1.w; + // mov r2.xy, c27[a0.y] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c37, c37.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // mul r3.xyz, r1.w, c79 + temp3.xyz = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r1.yzw, c78.xxyz, r1.y, r3.xxyz + temp1.yzw = (View._m00_m10_m20_m30).xyz * temp1.yyy + temp3.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c66 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c65 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.z, r3.z, c28.w + temp2.z = temp3.z + float1(-1); + // mul r2.z, r2.z, r2.z + temp2.z = temp2.z * temp2.z; + // sge r2.z, -r2.z, r2.z + temp2.z = (-temp2.z >= temp2.z) ? 1 : 0; + // lrp r4.x, r2.z, c29.z, r3.z + temp4.x = lerp(temp3.z, float1(1.0001), temp2.z); + // log r2.z, r4.x + temp2.z = log2(temp4.x); + // mul r2.w, r2.z, c29.w + temp2.w = temp2.z * float1(0.6931472); + // mul r2.z, r0.z, r2.z + temp2.z = temp0.z * temp2.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r2.z, r2.z + temp2.z = exp2(temp2.z); + // add r2.z, r2.z, c28.w + temp2.z = temp2.z + float1(-1); + // mul r2.z, r2.w, r2.z + temp2.z = temp2.w * temp2.z; + // mad r2.z, r3.y, r2.z, r3.x + temp2.z = temp3.y * temp2.z + temp3.x; + // mad r3.xyz, r2.z, r1.yzww, r0.xyww + temp3.xyz = temp2.zzz * temp1.yzw + temp0.xyw; + // mov r3.w, -c28.w + temp3.w = float1(1); + // dp4 oPos.x, r3, c71 + o.position.x = dot(temp3, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r3, c72 + o.position.y = dot(temp3, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r3, c74 + temp0.y = dot(temp3, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r3, c73 + temp0.x = dot(temp3, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r3.x, r0.x, c40.x + temp3.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r2.z, r1.y, r0.w, -r0.w + temp2.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r2.z, c54.x + temp0.x = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r2, r0 + temp0.xy = temp2.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r3.w, r1.x, r1.y, r1.z + temp3.w = temp1.x * temp1.y + temp1.z; + // mov r1.yw, c27.z + temp1.yw = float2(0, 0); + // mul r2.z, r0.z, c63.x + temp2.z = temp0.z * Draw.SpeedMultiplier.x; + // min r3.y, r2.z, c40.x + temp3.y = min(temp2.z, expr40.x); + // frc r1.xz, r3.yyxw + temp1.xz = frac(temp3.yx); + // add r1, r3.ywxw, -r1 + temp1 = temp3.ywxw + -temp1; + // add r1, r2.xyxy, r1 + temp1 = temp2.xyxy + temp1; + // mul r4.xy, r1.zwzw, c46.x + temp4.xy = temp1.zw * expr46.xx; + // frc r0.w, r2.z + temp0.w = frac(temp2.z); + // mul r1.z, r2.z, c50.x + temp1.z = temp2.z * expr50.x; + // frc r4.zw, r3.xyyx + temp4.zw = frac(temp3.yx); + // add r5.xz, r3.yyxw, -r4.zyww + temp5.xz = temp3.yx + -temp4.zw; + // lrp r6.xyz, c51.x, r4, r0.xyww + temp6.xyz = lerp(temp0.xyw, temp4.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r2.zw, r0.xyxy + temp2.zw = frac(temp0.xy); + // add r0.xy, r0, -r2.zwzw + temp0.xy = temp0.xy + -temp2.zw; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r3.xy, c64 + temp3.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r3.y, r3.x + temp0.y = float1(0.957897) * temp3.y + temp3.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.w, r0.x, -r0.w + temp1.w = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r3.z, r0.x, r0.w, r1.w + temp3.z = temp0.x * temp0.w + temp1.w; + // add r0.xw, r2.xyzy, r3.zyzw + temp0.xw = temp2.xy + temp3.zw; + // mul r3.xy, r0.xwzw, c46.x + temp3.xy = temp0.xw * expr46.xx; + // mov r3.z, c27.z + temp3.z = float1(0); + // lrp r7.xyz, c52.x, r3, r6 + temp7.xyz = lerp(temp6.xyz, temp3.xyz, expr52.xxx); + // mov r5.w, c48.x + temp5.w = expr48.x; + // add r2.zw, r2.xyxy, r5 + temp2.zw = temp2.xy + temp5.zw; + // mul r4.xy, r2.zwzw, c46.x + temp4.xy = temp2.zw * expr46.xx; + // add r3.xyz, r4, -r7 + temp3.xyz = temp4.xyz + -temp7.xyz; + // mad oT3.xyz, c53.x, r3, r7 + o.texcoord3 = expr53.x * temp3 + temp7; + // abs r1.w, r1.z + temp1.w = abs(temp1.z); + // sge r1.z, r1.z, -r1.z + temp1.z = (temp1.z >= -temp1.z) ? 1 : 0; + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // lrp r2.z, r1.z, r1.w, -r1.w + temp2.z = lerp(-temp1.w, temp1.w, temp1.z); + // mul r1.z, r2.z, c54.y + temp1.z = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.z, r1.w + temp2.z = abs(temp1.w); + // frc r2.z, r2.z + temp2.z = frac(temp2.z); + // sge r2.w, r1.w, -r1.w + temp2.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r1.z, r3.x, c54.x + temp1.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1 + temp2.zw = frac(temp1.zw); + // add r1.zw, r1, -r2 + temp1.zw = temp1.zw + -temp2.zw; + // add r1.zw, r2.xyxy, r1 + temp1.zw = temp2.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r5.y, c45.x + temp5.y = expr45.x; + // add r1.xy, r2, r5 + temp1.xy = temp2.xy + temp5.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // + + return o; +} + +// Default_Expression25 Expression_2_0 Has PRES False +float Default_Expression25() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c8.x, (-3) + temp0.x = Draw.ShaderType.x + (-3); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, (-2) + temp0.x = temp2.x + (-2); + // mul r1.x, r0.x, c9.x + temp1.x = temp0.x * ShouldDrawParticleSoft.x; + // add r0.x, r1.x, (2) + temp0.x = temp1.x + (2); + // mul c0.x, r0.x, (3) + expr0.x = temp0.x * (3); + return expr0; +} + +// Default_VertexShader26 Vertex_3_0 Has PRES True +struct Default_VertexShader26_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_VertexShader26_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +Default_VertexShader26_Output Default_VertexShader26(Default_VertexShader26_Input i) +{ + /* + PRSI + OutputRegisterOffset: 38 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 38 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 1 + 3 - ConstOutput: 54 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr38; + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c38.x, c1.x, (30) + expr38.x = Time.x * (30); + // add c39.x, c0.x, (-1) + expr39.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c55.x, c0.y + expr55.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c46.x, r0.x + expr46.x = temp0.x; + // mov c50.x, r0.x + expr50.x = temp0.x; + // mov c54.x, r0.x + expr54.x = temp0.x; + // mov c56.x, r0.x + expr56.x = temp0.x; + } + + Default_VertexShader26_Output o; + float4 temp0, temp1, temp2, addr0, temp3, temp4, temp5; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c37, 1, -1, 0.5, 0 + // def c30, -0.5, 0.5, 0.1591549, 0.2 + // def c31, 0, 0, 6.283185, -3.141593 + // def c32, -0.25, -0.25, 0.1875, 4.8125 + // def c33, 0.25, -0.25, 0.1875, 2.75 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // add r0.x, c38.x, -v1.w + temp0.x = expr38.x + -i.texcoord.w; + // slt r0.y, v0.w, r0.x + temp0.y = (i.position.w < temp0.x) ? 1 : 0; + // mad r0.y, r0.y, -v2.y, v2.y + temp0.y = temp0.y * -i.texcoord1.y + i.texcoord1.y; + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.z, r0.x, r0.z + temp0.z = temp0.x * temp0.z; + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r1, v2.x, r0.w, c36 + temp1 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r1, r1 + temp1 = frac(temp1); + // mul r1, r1, c28.z + temp1 = temp1 * float4(16, 16, 16, 16); + // frc r2, r1 + temp2 = frac(temp1); + // add r1, r1, -r2 + temp1 = temp1 + -temp2; + // mova a0, r1 + addr0 = temp1; + // mov r1.xyz, c11[a0.x] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c69 + temp2.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c68 + temp1.xyz = temp1.xyz * temp2.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r0.w, r1.z, c28.w + temp0.w = temp1.z + float1(-1); + // sge r0.w, -r0_abs.w, r0_abs.w + temp0.w = (r0.w == 0) ? 1 : 0; + // lrp r2.x, r0.w, c29.z, r1.z + temp2.x = lerp(temp1.z, float1(1.0001), temp0.w); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.z, r0.x, r0.w + temp1.z = temp0.x * temp0.w; + // exp r1.z, r1.z + temp1.z = exp2(temp1.z); + // add r1.z, r1.z, c28.w + temp1.z = temp1.z + float1(-1); + // mul r0.w, r0.w, c29.w + temp0.w = temp0.w * float1(0.6931472); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mul r0.w, r1.z, r0.w + temp0.w = temp1.z * temp0.w; + // mad r0.w, r1.y, r0.w, r1.x + temp0.w = temp1.y * temp0.w + temp1.x; + // mov r1.xy, c84 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r1.x, c11[a0.y].x, r1.y, r1.x + temp1.x = float1(0.957897) * temp1.y + temp1.x; + // add r1.y, r1.x, c28.w + temp1.y = temp1.x + float1(-1); + // sge r1.y, -r1_abs.y, r1_abs.y + temp1.y = (r1.y == 0) ? 1 : 0; + // lrp r2.x, r1.y, c29.z, r1.x + temp2.x = lerp(temp1.x, float1(1.0001), temp1.y); + // log r1.x, r2.x + temp1.x = log2(temp2.x); + // mul r1.y, r0.x, r1.x + temp1.y = temp0.x * temp1.x; + // exp r1.y, r1.y + temp1.y = exp2(temp1.y); + // add r1.y, r1.y, c28.w + temp1.y = temp1.y + float1(-1); + // mul r1.x, r1.x, c29.w + temp1.x = temp1.x * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xyz, v1, r1.x, r2 + temp1.xyz = i.texcoord.xyz * temp1.xxx + temp2.xyz; + // mul r1.w, r0.x, -c27.x + temp1.w = temp0.x * float1(0.5); + // mov r2.xyz, c82 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r1.w, r2, c83 + temp2.xyz = temp1.www * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xyz, r2, r0.x, r1 + temp1.xyz = temp2.xyz * temp0.xxx + temp1.xyz; + // add r2.xyz, r1.xyyw, -v0.xyyw + temp2.xyz = temp1.xyy + -i.position.xyy; + // mov r3.xyz, c11[a0.z] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c71 + temp4.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c70 + temp3.xyz = temp3.xyz * temp4.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r3.z, c28.w + temp1.w = temp3.z + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r2.w, r1.w, c29.z, r3.z + temp2.w = lerp(temp3.z, float1(1.0001), temp1.w); + // log r1.w, r2.w + temp1.w = log2(temp2.w); + // mul r2.w, r0.x, r1.w + temp2.w = temp0.x * temp1.w; + // exp r2.w, r2.w + temp2.w = exp2(temp2.w); + // add r2.w, r2.w, c28.w + temp2.w = temp2.w + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.w, r3.y, r1.w, r3.x + temp1.w = temp3.y * temp1.w + temp3.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.w + temp3.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r2.yzw, r2.xxyz, r3.xxyx + temp2.yzw = temp2.xyz * temp3.xyx; + // add r2.y, r2.z, r2.y + temp2.y = temp2.z + temp2.y; + // mad r2.z, r2.x, -r3.y, r2.w + temp2.z = temp2.x * -temp3.y + temp2.w; + // add r1.xy, r2.yzzw, v0 + temp1.xy = temp2.yz + i.position.xy; + // mov r2.xyz, c11[a0.w] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c73 + temp3.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r2.yzw, r2.xxyz, r3.xxyz, c72.xxyz + temp2.yzw = temp2.xyz * temp3.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.w, c28.w + temp1.w = temp2.w + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.w + temp3.x = lerp(temp2.w, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.w, r0.x, r1.w + temp2.w = temp0.x * temp1.w; + // exp r2.w, r2.w + temp2.w = exp2(temp2.w); + // add r2.w, r2.w, c28.w + temp2.w = temp2.w + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.w, r2.z, r1.w, r2.y + temp1.w = temp2.z * temp1.w + temp2.y; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.w + temp3.xy = float2(cos(temp1.w), sin(temp1.w)); + // frc r1.w, r0.y + temp1.w = frac(temp0.y); + // add r0.y, r0.y, -r1.w + temp0.y = temp0.y + -temp1.w; + // mova a0.x, r0.y + addr0.x = temp0.y; + // mul r2.yzw, r3.xxyx, c27[a0.x].xxyy + temp2.yzw = temp3.xyx * float3(-0.5, -0.5, -0.5); + // add r0.y, r2.z, r2.y + temp0.y = temp2.z + temp2.y; + // mad r1.w, c27[a0.x].x, -r3.y, r2.w + temp1.w = float1(-0.5) * -temp3.y + temp2.w; + // mul r2.yzw, r1.w, c86.xxyz + temp2.yzw = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r2.yzw, c85.xxyz, r0.y, r2 + temp2.yzw = (View._m00_m10_m20_m30).xyz * temp0.yyy + temp2.yzw; + // mad r1.xyz, r0.w, r2.yzww, r1 + temp1.xyz = temp0.www * temp2.yzw + temp1.xyz; + // mul r0.y, r0.w, c30.w + temp0.y = temp0.w * float1(0.2); + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp4 r3.x, r1, c74 + temp3.x = dot(temp1, (WorldView._m00_m10_m20_m30)); + // dp4 r3.y, r1, c75 + temp3.y = dot(temp1, (WorldView._m01_m11_m21_m31)); + // dp4 r3.z, r1, c76 + temp3.z = dot(temp1, (WorldView._m02_m12_m22_m32)); + // dp4 r3.w, r1, c77 + temp3.w = dot(temp1, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r3.z, r0.y + o.texcoord5.x = temp3.z * temp0.y; + // dp4 r1.x, r3, c78 + temp1.x = dot(temp3, (Projection._m00_m10_m20_m30)); + // dp4 r1.y, r3, c79 + temp1.y = dot(temp3, (Projection._m01_m11_m21_m31)); + // dp4 r1.z, r3, c80 + temp1.z = dot(temp3, (Projection._m02_m12_m22_m32)); + // dp4 r1.w, r3, c81 + temp1.w = dot(temp3, (Projection._m03_m13_m23_m33)); + // rcp r0.w, r1.w + temp0.w = 1.0f / temp1.w; + // mul o4.x, r1.z, r0.w + o.texcoord2 = temp1.z * temp0.w; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.yz, r3.xxyw, c37.xxyw, c37.z + temp2.yz = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r0.w, r0.x, c66.x + temp0.w = temp0.x * Draw.SpeedMultiplier.x; + // min r3.y, r0.w, c39.x + temp3.y = min(temp0.w, expr39.x); + // mov r2.w, c28.w + temp2.w = float1(-1); + // mad r0.x, r0.x, c66.x, -r2.w + temp0.x = temp0.x * Draw.SpeedMultiplier.x + -temp2.w; + // min r3.x, r0.x, c39.x + temp3.x = min(temp0.x, expr39.x); + // if b0 + if (Error ConstBool0Error) { + // frc r4.xy, r3.yxzw + temp4.xy = frac(temp3.yx); + // add r5.xz, r3.yyxw, -r4.xyyw + temp5.xz = temp3.yx + -temp4.xy; + // mov r5.y, c45.x + temp5.y = expr45.x; + // add r4.yz, r2, r5.xxyw + temp4.yz = temp2.yz + temp5.xy; + // mul o1.xy, r4.yzzw, c46.x + o.texcoord = temp4.yzzw * expr46.x; + // mov r5.w, c48.x + temp5.w = expr48.x; + // add r4.yz, r2, r5.xzww + temp4.yz = temp2.yz + temp5.zw; + // mul o5.xy, r4.yzzw, c46.x + o.texcoord3.xy = temp4.yz * expr46.xx; + // mov o5.z, r4.x + o.texcoord3.z = temp4.x; + // else + } else { + // mul r2.x, r2.x, c57.x + temp2.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r4.x, r2.x, -r2.w + temp4.x = temp2.x + -temp2.w; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r3.w, r2.x, r2.w, r4.x + temp3.w = temp2.x * temp2.w + temp4.x; + // if b1 + if (Error ConstBool1Error) { + // mad r2.x, v2.x, c32.z, c32.w + temp2.x = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // mul r2.x, r2.x, c28.z + temp2.x = temp2.x * float1(16); + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r2.x, r2.x, -r2.w + temp2.x = temp2.x + -temp2.w; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mov r2.x, c57.x + temp2.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r2.x, r2.x, c11[a0.x].x + temp2.x = temp2.x * float1(0.957897); + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r4.x, r2.x, -r2.w + temp4.x = temp2.x + -temp2.w; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r3.z, r2.x, r2.w, r4.x + temp3.z = temp2.x * temp2.w + temp4.x; + // add r2.xw, r2.yyzz, r3.zyzw + temp2.xw = temp2.yz + temp3.zw; + // mul r2.xw, r2, c50.x + temp2.xw = temp2.xw * expr50.xx; + // mov o5.z, c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r2.xwzw + o.texcoord3.xy = temp2.xw; + // mov o1.xy, r2.xwzw + o.texcoord = temp2.xwzw; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r4.z, r3.y + temp4.z = frac(temp3.y); + // mov r4.w, c27.z + temp4.w = float1(0); + // add r2.xw, r3.yyzw, -r4.zyzw + temp2.xw = temp3.yw + -temp4.zw; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o1.xy, r2.xwzw, c54.x + o.texcoord = temp2.xwzw * expr54.x; + // frc r2.x, r3.x + temp2.x = frac(temp3.x); + // mov r2.w, c27.z + temp2.w = float1(0); + // add r2.xw, r3, -r2 + temp2.xw = temp3.xw + -temp2.xw; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul r4.xy, r2.xwzw, c54.x + temp4.xy = temp2.xw * expr54.xx; + // mov o5.xyz, r4 + o.texcoord3 = temp4; + // else + } else { + // mul r2.x, r0.w, c55.x + temp2.x = temp0.w * expr55.x; + // frc r2.w, r2_abs.x + temp2.w = frac(abs(temp2).x); + // sge r2.x, r2.x, -r2.x + temp2.x = (temp2.x >= -temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, r2.w, -r2.w + temp3.x = lerp(-temp2.w, temp2.w, temp2.x); + // mul r2.x, r3.x, c57.y + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.w, r2.x, c56.x + temp2.w = temp2.x * expr56.x; + // frc r3.x, r2_abs.w + temp3.x = frac(abs(temp2).w); + // sge r3.y, r2.w, -r2.w + temp3.y = (temp2.w >= -temp2.w) ? 1 : 0; + // lrp r4.x, r3.y, r3.x, -r3.x + temp4.x = lerp(-temp3.x, temp3.x, temp3.y); + // mul r2.x, r4.x, c57.x + temp2.x = temp4.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r3.xy, r2.xwzw + temp3.xy = frac(temp2.xw); + // add r2.xw, r2, -r3.xyzy + temp2.xw = temp2.xw + -temp3.xy; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o1.xy, r2.xwzw, c56.x + o.texcoord = temp2.xwzw * expr56.x; + // mul r0.x, r0.x, c55.x + temp0.x = temp0.x * expr55.x; + // frc r2.x, r0_abs.x + temp2.x = frac(abs(temp0).x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // lrp r3.x, r0.x, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.x); + // mul r0.x, r3.x, c57.y + temp0.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.w, r0.x, c56.x + temp2.w = temp0.x * expr56.x; + // frc r0.x, r2_abs.w + temp0.x = frac(abs(temp2).w); + // sge r3.x, r2.w, -r2.w + temp3.x = (temp2.w >= -temp2.w) ? 1 : 0; + // lrp r4.x, r3.x, r0.x, -r0.x + temp4.x = lerp(-temp0.x, temp0.x, temp3.x); + // mul r2.x, r4.x, c57.x + temp2.x = temp4.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r3.xy, r2.xwzw + temp3.xy = frac(temp2.xw); + // add r2.xw, r2, -r3.xyzy + temp2.xw = temp2.xw + -temp3.xy; + // add r2.xy, r2.yzzw, r2.xwzw + temp2.xy = temp2.yz + temp2.xw; + // mul o5.xy, r2, c56.x + o.texcoord3.xy = temp2.xy * expr56.xx; + // frc o5.z, r0.w + o.texcoord3.z = frac(temp0.w); + // endif + } + // endif + } + // endif + } + // mov r2, c58 + temp2 = Draw.ColorAnimationFunctions[0]; + // mad r2, r2, r0.z, c59 + temp2 = temp2 * temp0.z + Draw.ColorAnimationFunctions[1]; + // slt r0.xw, r0.z, c64.yyzz + temp0.xw = (temp0.zz < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c60 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.z, c61 + temp3 = temp3 * temp0.z + Draw.ColorAnimationFunctions[3]; + // mov r4, c62 + temp4 = Draw.ColorAnimationFunctions[4]; + // mad r4, r4, r0.z, c63 + temp4 = temp4 * temp0.z + Draw.ColorAnimationFunctions[5]; + // lrp r5, r0.w, r3, r4 + temp5 = lerp(temp4, temp3, temp0.w); + // lrp r3, r0.x, r2, r5 + temp3 = lerp(temp5, temp2, temp0.x); + // mad r0.x, v2.x, c33.z, c33.w + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c28.z + temp0.x = temp0.x * float1(16); + // frc r0.z, r0.x + temp0.z = frac(temp0.x); + // add r0.x, r0.x, -r0.z + temp0.x = temp0.x + -temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r2.xy, c67 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r2.y, r2.x + temp0.x = float1(0.957897) * temp2.y + temp2.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r1 + o.position = temp1; + // mov o3.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r1 + o.texcoord4 = temp1; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_3_0 Default_VertexShader26(); // 39 + PixelShader = PS_Array_H[Default_Expression25()]; // 40 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader24(); // 45 + PixelShader = PS_Array_M[Default_M_Expression23()]; // 46 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_L_VertexShader22(); // 48 + PixelShader = compile ps_2_0 Default_L_PixelShader21(); // 49 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader20(); // 57 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression19()]; // 58 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/gpuparticledistort.fx b/gpuparticledistort.fx new file mode 100644 index 0000000..0d3f2db --- /dev/null +++ b/gpuparticledistort.fx @@ -0,0 +1,3430 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_2_0, c54) : register(vs_3_0, c60) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_2_0, c75) : register(vs_3_0, c85) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c65) : register(vs_3_0, c71) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTextureSampler ; // 8 +sampler2D ParticleTextureSamplerSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 15 +sampler2D NextFrameTextureSamplerSampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture DetailTextureSampler ; // 22 +sampler2D DetailTextureSamplerSampler : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 25 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture DepthTexture ; // 29 +sampler2D DepthTextureSampler : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 31 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float4 ParticleMiscValues : register(ps_3_0, c11) : register(vs_3_0, c88) = { 1, 1, 1, 1 }; +bool ShouldDrawParticleSoft ; +column_major float4x4 WorldView : WorldView : register(vs_3_0, c77); +column_major float4x4 Projection : Projection : register(vs_3_0, c81); +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c71); +column_major float4x3 View : View : register(vs_2_0, c78) : register(vs_3_0, c124); +row_major float4x4 ProjectionI : ProjectionInverse; +float Time : Time; +// PS_Array_H_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_0(PS_Array_H_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0.5, -0.5 + // def c1, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_texcoord6 v5 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0.zwzw, c0.z + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v4.y, v4.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v5, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.yz, r1.xxyw, c0.x, c0.y + temp0.yz = temp1.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v5.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.yz, r1.xxyw, c0.x, r0 + temp0.yz = temp1.xy * float2(2, 2) + temp0.yz; + // add r0.yz, r0, c0.y + temp0.yz = temp0.yz + float2(-1, -1); + // mad r1.xy, r0.yzzw, c11.w, v0 + temp1.xy = temp0.yz * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.yz, r0, c11.w, v2.xxyw + temp0.yz = temp0.yz * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp1.xy); + // texld r2, r0.yzzw, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, temp0.yz); + // lrp r3, v2.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c1.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul oC0.xyz, r0.x, r1 + out_color.xyz = temp0.xxx * temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_1(PS_Array_H_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0.5, -0.5 + // def c1, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0.zwzw, c0.z + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v6, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.yz, r1.xxyw, c0.x, c0.y + temp0.yz = temp1.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v6.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.yz, r1.xxyw, c0.x, r0 + temp0.yz = temp1.xy * float2(2, 2) + temp0.yz; + // add r0.yz, r0, c0.y + temp0.yz = temp0.yz + float2(-1, -1); + // mad r1.xy, r0.yzzw, c11.w, v0 + temp1.xy = temp0.yz * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.yz, r0, c11.w, v3.xxyw + temp0.yz = temp0.yz * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp1.xy); + // texld r2, r0.yzzw, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, temp0.yz); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c1.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mad r0.xyz, r1, r0.x, c0.y + temp0.xyz = temp1.xyz * temp0.xxx + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, -c0.y + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_2(PS_Array_H_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0.5, -0.5 + // def c1, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0.zwzw, c0.z + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v6, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.yz, r1.xxyw, c0.x, c0.y + temp0.yz = temp1.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v6.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.yz, r1.xxyw, c0.x, r0 + temp0.yz = temp1.xy * float2(2, 2) + temp0.yz; + // add r0.yz, r0, c0.y + temp0.yz = temp0.yz + float2(-1, -1); + // mad r1.xy, r0.yzzw, c11.w, v0 + temp1.xy = temp0.yz * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.yz, r0, c11.w, v3.xxyw + temp0.yz = temp0.yz * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp1.xy); + // texld r2, r0.yzzw, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, temp0.yz); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c1.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_3(PS_Array_H_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0.5, -0.5 + // def c1, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_texcoord6 v5 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v5, s2 + temp0 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.xy, r0, c0.x, c0.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v5.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.xy, r1, c0.x, r0 + temp0.xy = temp1.xy * float2(2, 2) + temp0.xy; + // add r0.xy, r0, c0.y + temp0.xy = temp0.xy + float2(-1, -1); + // mad r0.zw, r0.xyxy, c11.w, v0.xyxy + temp0.zw = temp0.xy * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.xy, r0, c11.w, v2 + temp0.xy = temp0.xy * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r0.zwzw, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp0.zw); + // texld r0, r0, s1 + temp0 = tex2D(NextFrameTextureSamplerSampler, temp0.xy); + // lrp r2, v2.z, r0, r1 + temp2 = lerp(temp1, temp0, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0.zwzw, c0.z + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r1, r0, s3 + temp1 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r1.x, -v4.y, v4.x + temp0.x = saturate(temp1.x * -i.texcoord5.y + i.texcoord5.x); + // mul oC0.w, r0.w, r0.x + out_color.w = temp0.w * temp0.x; + // + + return out_color; +} + +// PS_Array_H_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_4(PS_Array_H_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0.5, -0.5 + // def c1, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0.zwzw, c0.z + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v6, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.yz, r1.xxyw, c0.x, c0.y + temp0.yz = temp1.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v6.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.yz, r1.xxyw, c0.x, r0 + temp0.yz = temp1.xy * float2(2, 2) + temp0.yz; + // add r0.yz, r0, c0.y + temp0.yz = temp0.yz + float2(-1, -1); + // mad r1.xy, r0.yzzw, c11.w, v0 + temp1.xy = temp0.yz * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.yz, r0, c11.w, v3.xxyw + temp0.yz = temp0.yz * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp1.xy); + // texld r2, r0.yzzw, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, temp0.yz); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // log r0.y, r1.y + temp0.y = log2(temp1.y); + // log r0.z, r1.z + temp0.z = log2(temp1.z); + // mul r0.xyz, r0, c1.x + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xyz, r1, c0.y + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, -c0.y + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_5(PS_Array_H_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0.5, -0.5 + // def c1, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0.zwzw, c0.z + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v6, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.yz, r1.xxyw, c0.x, c0.y + temp0.yz = temp1.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v6.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.yz, r1.xxyw, c0.x, r0 + temp0.yz = temp1.xy * float2(2, 2) + temp0.yz; + // add r0.yz, r0, c0.y + temp0.yz = temp0.yz + float2(-1, -1); + // mad r1.xy, r0.yzzw, c11.w, v0 + temp1.xy = temp0.yz * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.yz, r0, c11.w, v3.xxyw + temp0.yz = temp0.yz * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp1.xy); + // texld r2, r0.yzzw, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, temp0.yz); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // log r0.y, r1.y + temp0.y = log2(temp1.y); + // log r0.z, r1.z + temp0.z = log2(temp1.z); + // mul r0.xyz, r0, c1.x + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_6_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_6(PS_Array_H_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 2.2, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord6 v3 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.xy, r0, c0.x, c0.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v3.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.xy, r1, c0.x, r0 + temp0.xy = temp1.xy * float2(2, 2) + temp0.xy; + // add r0.xy, r0, c0.y + temp0.xy = temp0.xy + float2(-1, -1); + // mad r0.zw, r0.xyxy, c11.w, v0.xyxy + temp0.zw = temp0.xy * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.xy, r0, c11.w, v2 + temp0.xy = temp0.xy * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r0.zwzw, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp0.zw); + // texld r0, r0, s1 + temp0 = tex2D(NextFrameTextureSamplerSampler, temp0.xy); + // lrp r2, v2.z, r0, r1 + temp2 = lerp(temp1, temp0, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // + + return out_color; +} + +// PS_Array_H_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_7_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_7(PS_Array_H_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 2.2, 1 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord6 v4 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v4, s2 + temp0 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.xy, r0, c0.x, c0.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v4.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.xy, r1, c0.x, r0 + temp0.xy = temp1.xy * float2(2, 2) + temp0.xy; + // add r0.xy, r0, c0.y + temp0.xy = temp0.xy + float2(-1, -1); + // mad r0.zw, r0.xyxy, c11.w, v0.xyxy + temp0.zw = temp0.xy * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.xy, r0, c11.w, v3 + temp0.xy = temp0.xy * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r0.zwzw, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp0.zw); + // texld r0, r0, s1 + temp0 = tex2D(NextFrameTextureSamplerSampler, temp0.xy); + // lrp r2, v3.z, r0, r1 + temp2 = lerp(temp1, temp0, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xyz, r1, c0.y + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.w + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_8_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_8(PS_Array_H_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 2.2, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord6 v4 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v4, s2 + temp0 = tex2D(DetailTextureSamplerSampler, i.texcoord6.xy); + // mad r0.xy, r0, c0.x, c0.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // texld r1, v4.zwzw, s2 + temp1 = tex2D(DetailTextureSamplerSampler, i.texcoord6.zw); + // mad r0.xy, r1, c0.x, r0 + temp0.xy = temp1.xy * float2(2, 2) + temp0.xy; + // add r0.xy, r0, c0.y + temp0.xy = temp0.xy + float2(-1, -1); + // mad r0.zw, r0.xyxy, c11.w, v0.xyxy + temp0.zw = temp0.xy * ParticleMiscValues.ww + i.texcoord.xy; + // mad r0.xy, r0, c11.w, v3 + temp0.xy = temp0.xy * ParticleMiscValues.ww + i.texcoord3.xy; + // texld r1, r0.zwzw, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, temp0.zw); + // texld r0, r0, s1 + temp0 = tex2D(NextFrameTextureSamplerSampler, temp0.xy); + // lrp r2, v3.z, r0, r1 + temp2 = lerp(temp1, temp0, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +PixelShader PS_Array_H[9] = { + compile ps_3_0 PS_Array_H_Shader_0(), // 38 + compile ps_3_0 PS_Array_H_Shader_1(), // 39 + compile ps_3_0 PS_Array_H_Shader_2(), // 40 + compile ps_3_0 PS_Array_H_Shader_3(), // 41 + compile ps_3_0 PS_Array_H_Shader_4(), // 42 + compile ps_3_0 PS_Array_H_Shader_5(), // 43 + compile ps_3_0 PS_Array_H_Shader_6(), // 44 + compile ps_3_0 PS_Array_H_Shader_7(), // 45 + compile ps_3_0 PS_Array_H_Shader_8(), // 46 +}; +// PS_Array_M_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_0(PS_Array_M_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl t0.xy + // dcl v0 + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v0 + temp0 = temp2 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_M_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_1(PS_Array_M_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, -1, 1, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t1.xyz + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mad r0.xyz, r2, v0, c0.x + temp0.xyz = temp2.xyz * i.color.xyz + float3(-1, -1, -1); + // mul r1.w, r2.w, v0.w + temp1.w = temp2.w * i.color.w; + // mov_sat r2.xyz, t1 + temp2.xyz = saturate(i.texcoord1.xyz); + // mad r1.xyz, r2, r0, c0.y + temp1.xyz = temp2.xyz * temp0.xyz + float3(1, 1, 1); + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_M_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_2(PS_Array_M_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl t0.xy + // dcl v0 + // dcl t1.xyz + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v0 + temp0 = temp2 * i.color; + // mov_sat r1.xyz, t1 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_Array_M[3] = { + compile ps_2_0 PS_Array_M_Shader_0(), // 50 + compile ps_2_0 PS_Array_M_Shader_1(), // 51 + compile ps_2_0 PS_Array_M_Shader_2(), // 52 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord2 : TEXCOORD2) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t2.x + // mov r0, t2.x + temp0 = texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 59 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 60 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 61 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 62 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 63 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 64 +}; +// _CreateShadowMap_Expression19 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression19() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader20 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader20_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader20_Output +{ + float4 position : POSITION; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +_CreateShadowMap_VertexShader20_Output _CreateShadowMap_VertexShader20(_CreateShadowMap_VertexShader20_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + _CreateShadowMap_VertexShader20_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.w, c27[a0.y].x, -r2.y, r1.w + temp1.w = float1(-0.5) * -temp2.y + temp1.w; + // mov r2.xy, c27[a0.y] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c37, c37.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // mul r3.xyz, r1.w, c79 + temp3.xyz = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r1.yzw, r1.y, c78.xxyz, r3.xxyz + temp1.yzw = temp1.yyy * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c66 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c65 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.z, r3.z, c28.w + temp2.z = temp3.z + float1(-1); + // mul r2.z, r2.z, r2.z + temp2.z = temp2.z * temp2.z; + // sge r2.z, -r2.z, r2.z + temp2.z = (-temp2.z >= temp2.z) ? 1 : 0; + // lrp r4.x, r2.z, c29.z, r3.z + temp4.x = lerp(temp3.z, float1(1.0001), temp2.z); + // log r2.z, r4.x + temp2.z = log2(temp4.x); + // mul r2.w, r2.z, c29.w + temp2.w = temp2.z * float1(0.6931472); + // mul r2.z, r0.z, r2.z + temp2.z = temp0.z * temp2.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r2.z, r2.z + temp2.z = exp2(temp2.z); + // add r2.z, r2.z, c28.w + temp2.z = temp2.z + float1(-1); + // mul r2.z, r2.w, r2.z + temp2.z = temp2.w * temp2.z; + // mad r2.z, r3.y, r2.z, r3.x + temp2.z = temp3.y * temp2.z + temp3.x; + // mad r3.xyz, r2.z, r1.yzww, r0.xyww + temp3.xyz = temp2.zzz * temp1.yzw + temp0.xyw; + // mov r3.w, -c28.w + temp3.w = float1(1); + // dp4 oPos.x, r3, c71 + o.position.x = dot(temp3, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r3, c72 + o.position.y = dot(temp3, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r3, c74 + temp0.y = dot(temp3, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r3, c73 + temp0.x = dot(temp3, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r3.x, r0.x, c40.x + temp3.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r2.z, r1.y, r0.w, -r0.w + temp2.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r2.z, c54.x + temp0.x = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r2, r0 + temp0.xy = temp2.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r3.w, r1.x, r1.y, r1.z + temp3.w = temp1.x * temp1.y + temp1.z; + // mov r1.yw, c27.z + temp1.yw = float2(0, 0); + // mul r2.z, r0.z, c63.x + temp2.z = temp0.z * Draw.SpeedMultiplier.x; + // min r3.y, r2.z, c40.x + temp3.y = min(temp2.z, expr40.x); + // frc r1.xz, r3.yyxw + temp1.xz = frac(temp3.yx); + // add r1, r3.ywxw, -r1 + temp1 = temp3.ywxw + -temp1; + // add r1, r2.xyxy, r1 + temp1 = temp2.xyxy + temp1; + // mul r4.xy, r1.zwzw, c46.x + temp4.xy = temp1.zw * expr46.xx; + // frc r0.w, r2.z + temp0.w = frac(temp2.z); + // mul r1.z, r2.z, c50.x + temp1.z = temp2.z * expr50.x; + // frc r4.zw, r3.xyyx + temp4.zw = frac(temp3.yx); + // add r5.xz, r3.yyxw, -r4.zyww + temp5.xz = temp3.yx + -temp4.zw; + // lrp r6.xyz, c51.x, r4, r0.xyww + temp6.xyz = lerp(temp0.xyw, temp4.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r2.zw, r0.xyxy + temp2.zw = frac(temp0.xy); + // add r0.xy, r0, -r2.zwzw + temp0.xy = temp0.xy + -temp2.zw; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r3.xy, c64 + temp3.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r3.y, r3.x + temp0.y = float1(0.957897) * temp3.y + temp3.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.w, r0.x, -r0.w + temp1.w = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r3.z, r0.x, r0.w, r1.w + temp3.z = temp0.x * temp0.w + temp1.w; + // add r0.xw, r2.xyzy, r3.zyzw + temp0.xw = temp2.xy + temp3.zw; + // mul r3.xy, r0.xwzw, c46.x + temp3.xy = temp0.xw * expr46.xx; + // mov r3.z, c27.z + temp3.z = float1(0); + // lrp r7.xyz, c52.x, r3, r6 + temp7.xyz = lerp(temp6.xyz, temp3.xyz, expr52.xxx); + // mov r5.w, c48.x + temp5.w = expr48.x; + // add r2.zw, r2.xyxy, r5 + temp2.zw = temp2.xy + temp5.zw; + // mul r4.xy, r2.zwzw, c46.x + temp4.xy = temp2.zw * expr46.xx; + // add r3.xyz, r4, -r7 + temp3.xyz = temp4.xyz + -temp7.xyz; + // mad oT3.xyz, c53.x, r3, r7 + o.texcoord3 = expr53.x * temp3 + temp7; + // abs r1.w, r1.z + temp1.w = abs(temp1.z); + // sge r1.z, r1.z, -r1.z + temp1.z = (temp1.z >= -temp1.z) ? 1 : 0; + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // lrp r2.z, r1.z, r1.w, -r1.w + temp2.z = lerp(-temp1.w, temp1.w, temp1.z); + // mul r1.z, r2.z, c54.y + temp1.z = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.z, r1.w + temp2.z = abs(temp1.w); + // frc r2.z, r2.z + temp2.z = frac(temp2.z); + // sge r2.w, r1.w, -r1.w + temp2.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r1.z, r3.x, c54.x + temp1.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1 + temp2.zw = frac(temp1.zw); + // add r1.zw, r1, -r2 + temp1.zw = temp1.zw + -temp2.zw; + // add r1.zw, r2.xyxy, r1 + temp1.zw = temp2.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r5.y, c45.x + temp5.y = expr45.x; + // add r1.xy, r2, r5 + temp1.xy = temp2.xy + temp5.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, c27.z + o.texcoord1 = float4(0, 0, 0, 0); + // + + return o; +} + +// Default_L_PixelShader21 Pixel_2_0 Has PRES False +struct Default_L_PixelShader21_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 Default_L_PixelShader21(Default_L_PixelShader21_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_L_VertexShader22 Vertex_2_0 Has PRES True +struct Default_L_VertexShader22_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_L_VertexShader22_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +Default_L_VertexShader22_Output Default_L_VertexShader22(Default_L_VertexShader22_Input i) +{ + /* + PRSI + OutputRegisterOffset: 38 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 38 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 44 ConstInput 2 + 1 - ConstOutput: 47 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr38; + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c38.x, c1.x, (30) + expr38.x = Time.x * (30); + // add c39.x, c0.x, (-1) + expr39.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c49.x, r1.x, r0.y + expr49.x = temp1.x < temp0.y; + // mul c50.x, r0.x, r2.x + expr50.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c44.x, r2.z, r0.x + expr44.x = temp2.z + temp0.x; + // rcp c45.x, c0.x + expr45.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c48.x, r0.x, r1.x + expr48.x = temp0.x >= temp1.x; + // rcp c47.x, c0.y + expr47.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + Default_L_VertexShader22_Output o; + float4 temp0, temp1, temp2, temp3, addr0, temp4; + float2 temp5; + // def c36, 2.0625, 6.1875, 1.375, 4.8125 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c37, 1, -1, 0.5, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.xyz, c62 + temp0.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mov r0.w, c73.y + temp0.w = Physics.VelocityDampingRange.y; + // mov r1.xyz, c61 + temp1.xyz = Update.Size_Rate_Damping__Min.xyz; + // mov r1.w, c73.x + temp1.w = Physics.VelocityDampingRange.x; + // mov r2.w, c27.w + temp2.w = float1(0.1875); + // mad r2, v2.x, r2.w, c36 + temp2 = i.texcoord1.x * temp2.w + float4(2.0625, 6.1875, 1.375, 4.8125); + // frc r2, r2 + temp2 = frac(temp2); + // mul r2, r2, c28.z + temp2 = temp2 * float4(16, 16, 16, 16); + // frc r3, r2 + temp3 = frac(temp2); + // add r2, r2, -r3 + temp2 = temp2 + -temp3; + // mova a0, r2 + addr0 = temp2; + // mad r0, c11[a0.x], r0, r1 + temp0 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp0 + temp1; + // add r1.xy, r0.zwzw, c28.w + temp1.xy = temp0.zw + float2(-1, -1); + // mul r1.xy, r1, r1 + temp1.xy = temp1.xy * temp1.xy; + // sge r1.xy, -r1, r1 + temp1.xy = (-temp1.xy >= temp1.xy) ? 1 : 0; + // lrp r2.xy, r1, c29.z, r0.zwzw + temp2.xy = lerp(temp0.zw, float2(1.0001, 1.0001), temp1.xy); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.x, r0.z, c29.w + temp1.x = temp0.z * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add r1.y, -v1.w, c38.x + temp1.y = -i.texcoord.w + expr38.x; + // mul r0.z, r0.z, r1.y + temp0.z = temp0.z * temp1.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c28.w + temp0.z = temp0.z + float1(-1); + // mul r0.z, r1.x, r0.z + temp0.z = temp1.x * temp0.z; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xzw, v1.xyyz, r0.z, r2.xyyz + temp1.xzw = i.texcoord.xyz * temp0.zzz + temp2.xyz; + // mul r0.z, r1.y, -c27.x + temp0.z = temp1.y * float1(0.5); + // mov r2.xyz, c71 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.z, r2, c72 + temp2.xyz = temp0.zzz * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xzw, r2.xyyz, r1.y, r1 + temp1.xzw = temp2.xyz * temp1.yyy + temp1.xzw; + // add r2.xyz, r1.xzzw, -v0.xyyw + temp2.xyz = temp1.xzz + -i.position.xyy; + // mov r3.xy, c64 + temp3.xy = Update.XYRotation_Rate_Damping__Spread.xy; + // mov r3.zw, c66.xyxy + temp3.zw = Update.ZRotation_Rate_Damping__Spread.xy; + // mov r4.xy, c63 + temp4.xy = Update.XYRotation_Rate_Damping__Min.xy; + // mov r4.zw, c65.xyxy + temp4.zw = Update.ZRotation_Rate_Damping__Min.xy; + // mad r3, c11[a0.y], r3, r4 + temp3 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp3 + temp4; + // mad r3.xy, r3.ywzw, r1.y, r3.xzzw + temp3.xy = temp3.yw * temp1.yy + temp3.xz; + // mad r3.xy, r3, c30.z, c30.y + temp3.xy = temp3.xy * float2(0.15915494, 0.15915494) + float2(0.5, 0.5); + // frc r3.xy, r3 + temp3.xy = frac(temp3.xy); + // mad r3.xy, r3, c31.z, c31.w + temp3.xy = temp3.xy * float2(6.2831855, 6.2831855) + float2(-3.1415927, -3.1415927); + // sincos r4.xy, r3.x, c0, c1 + temp4.xy = float2(cos(temp3.x), sin(temp3.x)); + // sincos r5.xy, r3.y, c0, c1 + temp5.xy = float2(cos(temp3.y), sin(temp3.y)); + // mul r2.yzw, r2.xxyz, r4.xxyx + temp2.yzw = temp2.xyz * temp4.xyx; + // mad r2.w, r2.x, -r4.y, r2.w + temp2.w = temp2.x * -temp4.y + temp2.w; + // add r2.x, r2.z, r2.y + temp2.x = temp2.z + temp2.y; + // add r1.xz, r2.xyww, v0.xyyw + temp1.xz = temp2.xw + i.position.xy; + // slt r0.z, v0.w, r1.y + temp0.z = (i.position.w < temp1.y) ? 1 : 0; + // mad r0.z, r0.z, -v2.y, v2.y + temp0.z = temp0.z * -i.texcoord1.y + i.texcoord1.y; + // frc r2.x, r0.z + temp2.x = frac(temp0.z); + // add r0.z, r0.z, -r2.x + temp0.z = temp0.z + -temp2.x; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.xyz, r5.xyxw, c27[a0.x].xyyw + temp2.xyz = temp5.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c27[a0.x].x, -r5.y, r2.z + temp0.z = float1(-0.5) * -temp5.y + temp2.z; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c37.xyxy, c37.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r2.x, r2.y, r2.x + temp2.x = temp2.y + temp2.x; + // mul r3.xyz, r0.z, c75 + temp3.xyz = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r3.xyz, r2.x, c74, r3 + temp3.xyz = temp2.xxx * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mul r0.z, r0.w, c29.w + temp0.z = temp0.w * float1(0.6931472); + // mul r0.w, r0.w, r1.y + temp0.w = temp0.w * temp1.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c28.w + temp0.w = temp0.w + float1(-1); + // mul r0.z, r0.z, r0.w + temp0.z = temp0.z * temp0.w; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r0.xyz, r0.x, r3, r1.xzww + temp0.xyz = temp0.xxx * temp3.xyz + temp1.xzw; + // mov r0.w, -c28.w + temp0.w = float1(1); + // dp4 oPos.x, r0, c67 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c68 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c69 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c70 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mul r0.x, r1.y, c60.x + temp0.x = temp1.y * Draw.SpeedMultiplier.x; + // mul r0.y, r0.x, c47.x + temp0.y = temp0.x * expr47.x; + // min r0.x, r0.x, c39.x + temp0.x = min(temp0.x, expr39.x); + // abs r1.x, r0.y + temp1.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // lrp r2.x, r0.y, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp0.y); + // mul r0.y, r2.x, c51.y + temp0.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.y, c45.x + temp1.z = temp0.y * expr45.x; + // abs r0.y, r1.z + temp0.y = abs(temp1.z); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // sge r1.w, r1.z, -r1.z + temp1.w = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r2.x, r1.w, r0.y, -r0.y + temp2.x = lerp(-temp0.y, temp0.y, temp1.w); + // mul r1.x, r2.x, c51.x + temp1.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.xzzw + temp2.xy = frac(temp1.xz); + // add r1.xz, r1, -r2.xyyw + temp1.xz = temp1.xz + -temp2.xy; + // add r1.xz, r2.zyww, r1 + temp1.xz = temp2.zw + temp1.xz; + // mul r1.xz, r1, c45.x + temp1.xz = temp1.xz * expr45.xx; + // mov r2.x, c51.x + temp2.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r2.x, c11[a0.z].x + temp0.y = temp2.x * float1(0.957897); + // mul r1.w, r2.x, c11[a0.w].x + temp1.w = temp2.x * float1(0.957897); + // frc r2.x, r0.y + temp2.x = frac(temp0.y); + // add r2.y, r0.y, -r2.x + temp2.y = temp0.y + -temp2.x; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // mad r0.w, r0.y, r2.x, r2.y + temp0.w = temp0.y * temp2.x + temp2.y; + // mov r3.z, c27.z + temp3.z = float1(0); + // frc r3.xy, r0.x + temp3.xy = frac(temp0.x); + // add r2.xy, r0.xwzw, -r3.yzzw + temp2.xy = temp0.xw + -temp3.yz; + // add r0.x, r0.x, -r3.x + temp0.x = temp0.x + -temp3.x; + // add r2.xy, r2.zwzw, r2 + temp2.xy = temp2.zw + temp2.xy; + // mad r2.xy, r2, c45.x, -r1.xzzw + temp2.xy = temp2.xy * expr45.xx + -temp1.xz; + // mad r1.xz, c48.x, r2.xyyw, r1 + temp1.xz = expr48.xx * temp2.xy + temp1.xz; + // frc r2.x, r1.w + temp2.x = frac(temp1.w); + // add r2.y, r1.w, -r2.x + temp2.y = temp1.w + -temp2.x; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // slt r1.w, r1.w, -r1.w + temp1.w = (temp1.w < -temp1.w) ? 1 : 0; + // mad r0.z, r1.w, r2.x, r2.y + temp0.z = temp1.w * temp2.x + temp2.y; + // add r0.zw, r2, r0 + temp0.zw = temp2.zw + temp0.zw; + // mad r0.zw, r0, c45.x, -r1.xyxz + temp0.zw = temp0.zw * expr45.xx + -temp1.xz; + // mad r0.zw, c49.x, r0, r1.xyxz + temp0.zw = expr49.xx * temp0.zw + temp1.xz; + // mov r0.y, c44.x + temp0.y = expr44.x; + // add r0.xy, r2.zwzw, r0 + temp0.xy = temp2.zw + temp0.xy; + // mad r0.xy, r0, c45.x, -r0.zwzw + temp0.xy = temp0.xy * expr45.xx + -temp0.zw; + // mad oT0.xy, c50.x, r0, r0.zwzw + o.texcoord = expr50.x * temp0 + temp0.zwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.y, r0.x + temp0.x = temp1.y * temp0.x; + // mov r1, c54 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c55 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c56 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c57 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c58 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c52 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c53 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // add r1, r3, -r4 + temp1 = temp3 + -temp4; + // mad oD0, r0.y, r1, r4 + o.color = temp0.y * temp1 + temp4; + // + + return o; +} + +// Default_M_Expression23 Expression_2_0 Has PRES False +float Default_M_Expression23() +{ + float1 expr0; + // mov c0.x, (0) + expr0.x = (0); + return expr0; +} + +// Default_M_VertexShader24 Vertex_2_0 Has PRES True +struct Default_M_VertexShader24_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader24_Output +{ + float4 position : POSITION; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +Default_M_VertexShader24_Output Default_M_VertexShader24(Default_M_VertexShader24_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + Default_M_VertexShader24_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c37, 1, -1, 0.5, 0 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.w, c27[a0.y].x, -r2.y, r1.w + temp1.w = float1(-0.5) * -temp2.y + temp1.w; + // mov r2.xy, c27[a0.y] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c37, c37.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // mul r3.xyz, r1.w, c79 + temp3.xyz = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r1.yzw, r1.y, c78.xxyz, r3.xxyz + temp1.yzw = temp1.yyy * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c66 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c65 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.z, r3.z, c28.w + temp2.z = temp3.z + float1(-1); + // mul r2.z, r2.z, r2.z + temp2.z = temp2.z * temp2.z; + // sge r2.z, -r2.z, r2.z + temp2.z = (-temp2.z >= temp2.z) ? 1 : 0; + // lrp r4.x, r2.z, c29.z, r3.z + temp4.x = lerp(temp3.z, float1(1.0001), temp2.z); + // log r2.z, r4.x + temp2.z = log2(temp4.x); + // mul r2.w, r2.z, c29.w + temp2.w = temp2.z * float1(0.6931472); + // mul r2.z, r0.z, r2.z + temp2.z = temp0.z * temp2.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r2.z, r2.z + temp2.z = exp2(temp2.z); + // add r2.z, r2.z, c28.w + temp2.z = temp2.z + float1(-1); + // mul r2.z, r2.w, r2.z + temp2.z = temp2.w * temp2.z; + // mad r2.z, r3.y, r2.z, r3.x + temp2.z = temp3.y * temp2.z + temp3.x; + // mad r3.xyz, r2.z, r1.yzww, r0.xyww + temp3.xyz = temp2.zzz * temp1.yzw + temp0.xyw; + // mov r3.w, -c28.w + temp3.w = float1(1); + // dp4 oPos.x, r3, c71 + o.position.x = dot(temp3, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r3, c72 + o.position.y = dot(temp3, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r3, c74 + temp0.y = dot(temp3, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r3, c73 + temp0.x = dot(temp3, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r3.x, r0.x, c40.x + temp3.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r2.z, r1.y, r0.w, -r0.w + temp2.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r2.z, c54.x + temp0.x = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r2, r0 + temp0.xy = temp2.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r3.w, r1.x, r1.y, r1.z + temp3.w = temp1.x * temp1.y + temp1.z; + // mov r1.yw, c27.z + temp1.yw = float2(0, 0); + // mul r2.z, r0.z, c63.x + temp2.z = temp0.z * Draw.SpeedMultiplier.x; + // min r3.y, r2.z, c40.x + temp3.y = min(temp2.z, expr40.x); + // frc r1.xz, r3.yyxw + temp1.xz = frac(temp3.yx); + // add r1, r3.ywxw, -r1 + temp1 = temp3.ywxw + -temp1; + // add r1, r2.xyxy, r1 + temp1 = temp2.xyxy + temp1; + // mul r4.xy, r1.zwzw, c46.x + temp4.xy = temp1.zw * expr46.xx; + // frc r0.w, r2.z + temp0.w = frac(temp2.z); + // mul r1.z, r2.z, c50.x + temp1.z = temp2.z * expr50.x; + // frc r4.zw, r3.xyyx + temp4.zw = frac(temp3.yx); + // add r5.xz, r3.yyxw, -r4.zyww + temp5.xz = temp3.yx + -temp4.zw; + // lrp r6.xyz, c51.x, r4, r0.xyww + temp6.xyz = lerp(temp0.xyw, temp4.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r2.zw, r0.xyxy + temp2.zw = frac(temp0.xy); + // add r0.xy, r0, -r2.zwzw + temp0.xy = temp0.xy + -temp2.zw; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r3.xy, c64 + temp3.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r3.y, r3.x + temp0.y = float1(0.957897) * temp3.y + temp3.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.w, r0.x, -r0.w + temp1.w = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r3.z, r0.x, r0.w, r1.w + temp3.z = temp0.x * temp0.w + temp1.w; + // add r0.xw, r2.xyzy, r3.zyzw + temp0.xw = temp2.xy + temp3.zw; + // mul r3.xy, r0.xwzw, c46.x + temp3.xy = temp0.xw * expr46.xx; + // mov r3.z, c27.z + temp3.z = float1(0); + // lrp r7.xyz, c52.x, r3, r6 + temp7.xyz = lerp(temp6.xyz, temp3.xyz, expr52.xxx); + // mov r5.w, c48.x + temp5.w = expr48.x; + // add r2.zw, r2.xyxy, r5 + temp2.zw = temp2.xy + temp5.zw; + // mul r4.xy, r2.zwzw, c46.x + temp4.xy = temp2.zw * expr46.xx; + // add r3.xyz, r4, -r7 + temp3.xyz = temp4.xyz + -temp7.xyz; + // mad oT3.xyz, c53.x, r3, r7 + o.texcoord3 = expr53.x * temp3 + temp7; + // abs r1.w, r1.z + temp1.w = abs(temp1.z); + // sge r1.z, r1.z, -r1.z + temp1.z = (temp1.z >= -temp1.z) ? 1 : 0; + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // lrp r2.z, r1.z, r1.w, -r1.w + temp2.z = lerp(-temp1.w, temp1.w, temp1.z); + // mul r1.z, r2.z, c54.y + temp1.z = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.z, r1.w + temp2.z = abs(temp1.w); + // frc r2.z, r2.z + temp2.z = frac(temp2.z); + // sge r2.w, r1.w, -r1.w + temp2.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r1.z, r3.x, c54.x + temp1.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1 + temp2.zw = frac(temp1.zw); + // add r1.zw, r1, -r2 + temp1.zw = temp1.zw + -temp2.zw; + // add r1.zw, r2.xyxy, r1 + temp1.zw = temp2.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r5.y, c45.x + temp5.y = expr45.x; + // add r1.xy, r2, r5 + temp1.xy = temp2.xy + temp5.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // + + return o; +} + +// Default_Expression25 Expression_2_0 Has PRES False +float Default_Expression25() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c8.x, (-3) + temp0.x = Draw.ShaderType.x + (-3); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, (-2) + temp0.x = temp2.x + (-2); + // mul r1.x, r0.x, c9.x + temp1.x = temp0.x * ShouldDrawParticleSoft.x; + // add r0.x, r1.x, (2) + temp0.x = temp1.x + (2); + // mul c0.x, r0.x, (3) + expr0.x = temp0.x * (3); + return expr0; +} + +// Default_VertexShader26 Vertex_3_0 Has PRES True +struct Default_VertexShader26_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_VertexShader26_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +Default_VertexShader26_Output Default_VertexShader26(Default_VertexShader26_Input i) +{ + /* + PRSI + OutputRegisterOffset: 38 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 22 + Unknown3: 3 + Unknown4: 0 + Unknown5: 38 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 1 + 3 - ConstOutput: 54 ConstInput 6 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr38; + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c38.x, c2.x, (30) + expr38.x = Time.x * (30); + // add c39.x, c0.x, (-1) + expr39.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c55.x, c0.y + expr55.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // mul c59.x, c1.y, c2.x + expr59.x = ParticleMiscValues.y * Time.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c46.x, r0.x + expr46.x = temp0.x; + // mov c50.x, r0.x + expr50.x = temp0.x; + // mov c54.x, r0.x + expr54.x = temp0.x; + // mov c56.x, r0.x + expr56.x = temp0.x; + // mul r0.x, c1.z, (0.0027777312217828493) + temp0.x = ParticleMiscValues.z * (0.0027777312217828493); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // cos r1.x, r0.x + temp1.x = cos(temp0.x); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // mov c57.x, r1.y + expr57.x = temp1.y; + // mov c58.x, r1.x + expr58.x = temp1.x; + } + + Default_VertexShader26_Output o; + float4 temp0, temp1, temp2, addr0, temp3, temp4, temp5, temp6; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0.2 + // def c31, 0, 0, 6.283185, -3.141593 + // def c37, 1, -1, 0.5, 0 + // def c32, -0.25, -0.25, 0.1875, 4.8125 + // def c33, 0.25, -0.25, 0.1875, 2.75 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // dcl_texcoord6 o8 + // add r0.x, c38.x, -v1.w + temp0.x = expr38.x + -i.texcoord.w; + // slt r0.y, v0.w, r0.x + temp0.y = (i.position.w < temp0.x) ? 1 : 0; + // mad r0.y, r0.y, -v2.y, v2.y + temp0.y = temp0.y * -i.texcoord1.y + i.texcoord1.y; + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.z, r0.x, r0.z + temp0.z = temp0.x * temp0.z; + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r1, v2.x, r0.w, c36 + temp1 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r1, r1 + temp1 = frac(temp1); + // mul r1, r1, c28.z + temp1 = temp1 * float4(16, 16, 16, 16); + // frc r2, r1 + temp2 = frac(temp1); + // add r1, r1, -r2 + temp1 = temp1 + -temp2; + // mova a0, r1 + addr0 = temp1; + // mov r1.xyz, c11[a0.x] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c72 + temp2.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c71 + temp1.xyz = temp1.xyz * temp2.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r0.w, r1.z, c28.w + temp0.w = temp1.z + float1(-1); + // sge r0.w, -r0_abs.w, r0_abs.w + temp0.w = (r0.w == 0) ? 1 : 0; + // lrp r2.x, r0.w, c29.z, r1.z + temp2.x = lerp(temp1.z, float1(1.0001), temp0.w); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.z, r0.x, r0.w + temp1.z = temp0.x * temp0.w; + // exp r1.z, r1.z + temp1.z = exp2(temp1.z); + // add r1.z, r1.z, c28.w + temp1.z = temp1.z + float1(-1); + // mul r0.w, r0.w, c29.w + temp0.w = temp0.w * float1(0.6931472); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mul r0.w, r1.z, r0.w + temp0.w = temp1.z * temp0.w; + // mad r0.w, r1.y, r0.w, r1.x + temp0.w = temp1.y * temp0.w + temp1.x; + // mov r1.xy, c87 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r1.x, c11[a0.y].x, r1.y, r1.x + temp1.x = float1(0.957897) * temp1.y + temp1.x; + // add r1.y, r1.x, c28.w + temp1.y = temp1.x + float1(-1); + // sge r1.y, -r1_abs.y, r1_abs.y + temp1.y = (r1.y == 0) ? 1 : 0; + // lrp r2.x, r1.y, c29.z, r1.x + temp2.x = lerp(temp1.x, float1(1.0001), temp1.y); + // log r1.x, r2.x + temp1.x = log2(temp2.x); + // mul r1.y, r0.x, r1.x + temp1.y = temp0.x * temp1.x; + // exp r1.y, r1.y + temp1.y = exp2(temp1.y); + // add r1.y, r1.y, c28.w + temp1.y = temp1.y + float1(-1); + // mul r1.x, r1.x, c29.w + temp1.x = temp1.x * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xyz, v1, r1.x, r2 + temp1.xyz = i.texcoord.xyz * temp1.xxx + temp2.xyz; + // mul r1.w, r0.x, -c27.x + temp1.w = temp0.x * float1(0.5); + // mov r2.xyz, c85 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r1.w, r2, c86 + temp2.xyz = temp1.www * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xyz, r2, r0.x, r1 + temp1.xyz = temp2.xyz * temp0.xxx + temp1.xyz; + // add r2.xyz, r1.xyyw, -v0.xyyw + temp2.xyz = temp1.xyy + -i.position.xyy; + // mov r3.xyz, c11[a0.z] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c74 + temp4.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c73 + temp3.xyz = temp3.xyz * temp4.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r3.z, c28.w + temp1.w = temp3.z + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r2.w, r1.w, c29.z, r3.z + temp2.w = lerp(temp3.z, float1(1.0001), temp1.w); + // log r1.w, r2.w + temp1.w = log2(temp2.w); + // mul r2.w, r0.x, r1.w + temp2.w = temp0.x * temp1.w; + // exp r2.w, r2.w + temp2.w = exp2(temp2.w); + // add r2.w, r2.w, c28.w + temp2.w = temp2.w + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.w, r3.y, r1.w, r3.x + temp1.w = temp3.y * temp1.w + temp3.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.w + temp3.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r2.yzw, r2.xxyz, r3.xxyx + temp2.yzw = temp2.xyz * temp3.xyx; + // add r2.y, r2.z, r2.y + temp2.y = temp2.z + temp2.y; + // mad r2.z, r2.x, -r3.y, r2.w + temp2.z = temp2.x * -temp3.y + temp2.w; + // add r1.xy, r2.yzzw, v0 + temp1.xy = temp2.yz + i.position.xy; + // mov r2.xyz, c11[a0.w] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c76 + temp3.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r2.yzw, r2.xxyz, r3.xxyz, c75.xxyz + temp2.yzw = temp2.xyz * temp3.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.w, c28.w + temp1.w = temp2.w + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.w + temp3.x = lerp(temp2.w, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.w, r0.x, r1.w + temp2.w = temp0.x * temp1.w; + // exp r2.w, r2.w + temp2.w = exp2(temp2.w); + // add r2.w, r2.w, c28.w + temp2.w = temp2.w + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.w, r2.z, r1.w, r2.y + temp1.w = temp2.z * temp1.w + temp2.y; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.w + temp3.xy = float2(cos(temp1.w), sin(temp1.w)); + // frc r1.w, r0.y + temp1.w = frac(temp0.y); + // add r0.y, r0.y, -r1.w + temp0.y = temp0.y + -temp1.w; + // mova a0.x, r0.y + addr0.x = temp0.y; + // mul r2.yzw, r3.xxyx, c27[a0.x].xxyy + temp2.yzw = temp3.xyx * float3(-0.5, -0.5, -0.5); + // add r0.y, r2.z, r2.y + temp0.y = temp2.z + temp2.y; + // mad r1.w, c27[a0.x].x, -r3.y, r2.w + temp1.w = float1(-0.5) * -temp3.y + temp2.w; + // mul r2.yzw, r1.w, c125.xxyz + temp2.yzw = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r2.yzw, r0.y, c124.xxyz, r2 + temp2.yzw = temp0.yyy * (View._m00_m10_m20_m30).xyz + temp2.yzw; + // mad r1.xyz, r0.w, r2.yzww, r1 + temp1.xyz = temp0.www * temp2.yzw + temp1.xyz; + // mul r0.y, r0.w, c30.w + temp0.y = temp0.w * float1(0.2); + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp4 r3.x, r1, c77 + temp3.x = dot(temp1, (WorldView._m00_m10_m20_m30)); + // dp4 r3.y, r1, c78 + temp3.y = dot(temp1, (WorldView._m01_m11_m21_m31)); + // dp4 r3.z, r1, c79 + temp3.z = dot(temp1, (WorldView._m02_m12_m22_m32)); + // dp4 r3.w, r1, c80 + temp3.w = dot(temp1, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r3.z, r0.y + o.texcoord5.x = temp3.z * temp0.y; + // dp4 r1.x, r3, c81 + temp1.x = dot(temp3, (Projection._m00_m10_m20_m30)); + // dp4 r1.y, r3, c82 + temp1.y = dot(temp3, (Projection._m01_m11_m21_m31)); + // dp4 r1.z, r3, c83 + temp1.z = dot(temp3, (Projection._m02_m12_m22_m32)); + // dp4 r1.w, r3, c84 + temp1.w = dot(temp3, (Projection._m03_m13_m23_m33)); + // rcp r0.w, r1.w + temp0.w = 1.0f / temp1.w; + // mul o4.x, r1.z, r0.w + o.texcoord2 = temp1.z * temp0.w; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.yz, r3.xxyw, c37.xxyw, c37.z + temp2.yz = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r0.w, r0.x, c69.x + temp0.w = temp0.x * Draw.SpeedMultiplier.x; + // min r3.y, r0.w, c39.x + temp3.y = min(temp0.w, expr39.x); + // mov r2.w, c28.w + temp2.w = float1(-1); + // mad r0.x, r0.x, c69.x, -r2.w + temp0.x = temp0.x * Draw.SpeedMultiplier.x + -temp2.w; + // min r3.x, r0.x, c39.x + temp3.x = min(temp0.x, expr39.x); + // if b0 + if (Error ConstBool0Error) { + // frc r4.xy, r3.yxzw + temp4.xy = frac(temp3.yx); + // add r5.xz, r3.yyxw, -r4.xyyw + temp5.xz = temp3.yx + -temp4.xy; + // mov r5.y, c45.x + temp5.y = expr45.x; + // add r4.yz, r2, r5.xxyw + temp4.yz = temp2.yz + temp5.xy; + // mul o1.xy, r4.yzzw, c46.x + o.texcoord = temp4.yzzw * expr46.x; + // mov r5.w, c48.x + temp5.w = expr48.x; + // add r4.yz, r2, r5.xzww + temp4.yz = temp2.yz + temp5.zw; + // mul o5.xy, r4.yzzw, c46.x + o.texcoord3.xy = temp4.yz * expr46.xx; + // mov o5.z, r4.x + o.texcoord3.z = temp4.x; + // else + } else { + // mul r2.x, r2.x, c60.x + temp2.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r4.x, r2.x, -r2.w + temp4.x = temp2.x + -temp2.w; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r3.w, r2.x, r2.w, r4.x + temp3.w = temp2.x * temp2.w + temp4.x; + // if b1 + if (Error ConstBool1Error) { + // mad r2.x, v2.x, c32.z, c32.w + temp2.x = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // mul r2.x, r2.x, c28.z + temp2.x = temp2.x * float1(16); + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r2.x, r2.x, -r2.w + temp2.x = temp2.x + -temp2.w; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mov r2.x, c60.x + temp2.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r2.x, r2.x, c11[a0.x].x + temp2.x = temp2.x * float1(0.957897); + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r4.x, r2.x, -r2.w + temp4.x = temp2.x + -temp2.w; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r3.z, r2.x, r2.w, r4.x + temp3.z = temp2.x * temp2.w + temp4.x; + // add r2.xw, r2.yyzz, r3.zyzw + temp2.xw = temp2.yz + temp3.zw; + // mul r2.xw, r2, c50.x + temp2.xw = temp2.xw * expr50.xx; + // mov o5.z, c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r2.xwzw + o.texcoord3.xy = temp2.xw; + // mov o1.xy, r2.xwzw + o.texcoord = temp2.xwzw; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r4.z, r3.y + temp4.z = frac(temp3.y); + // mov r4.w, c27.z + temp4.w = float1(0); + // add r2.xw, r3.yyzw, -r4.zyzw + temp2.xw = temp3.yw + -temp4.zw; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o1.xy, r2.xwzw, c54.x + o.texcoord = temp2.xwzw * expr54.x; + // frc r2.x, r3.x + temp2.x = frac(temp3.x); + // mov r2.w, c27.z + temp2.w = float1(0); + // add r2.xw, r3, -r2 + temp2.xw = temp3.xw + -temp2.xw; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul r4.xy, r2.xwzw, c54.x + temp4.xy = temp2.xw * expr54.xx; + // mov o5.xyz, r4 + o.texcoord3 = temp4; + // else + } else { + // mul r2.x, r0.w, c55.x + temp2.x = temp0.w * expr55.x; + // frc r2.w, r2_abs.x + temp2.w = frac(abs(temp2).x); + // sge r2.x, r2.x, -r2.x + temp2.x = (temp2.x >= -temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, r2.w, -r2.w + temp3.x = lerp(-temp2.w, temp2.w, temp2.x); + // mul r2.x, r3.x, c60.y + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.w, r2.x, c56.x + temp2.w = temp2.x * expr56.x; + // frc r3.x, r2_abs.w + temp3.x = frac(abs(temp2).w); + // sge r3.y, r2.w, -r2.w + temp3.y = (temp2.w >= -temp2.w) ? 1 : 0; + // lrp r4.x, r3.y, r3.x, -r3.x + temp4.x = lerp(-temp3.x, temp3.x, temp3.y); + // mul r2.x, r4.x, c60.x + temp2.x = temp4.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r3.xy, r2.xwzw + temp3.xy = frac(temp2.xw); + // add r2.xw, r2, -r3.xyzy + temp2.xw = temp2.xw + -temp3.xy; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o1.xy, r2.xwzw, c56.x + o.texcoord = temp2.xwzw * expr56.x; + // mul r0.x, r0.x, c55.x + temp0.x = temp0.x * expr55.x; + // frc r2.x, r0_abs.x + temp2.x = frac(abs(temp0).x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // lrp r3.x, r0.x, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.x); + // mul r0.x, r3.x, c60.y + temp0.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.w, r0.x, c56.x + temp2.w = temp0.x * expr56.x; + // frc r0.x, r2_abs.w + temp0.x = frac(abs(temp2).w); + // sge r3.x, r2.w, -r2.w + temp3.x = (temp2.w >= -temp2.w) ? 1 : 0; + // lrp r4.x, r3.x, r0.x, -r0.x + temp4.x = lerp(-temp0.x, temp0.x, temp3.x); + // mul r2.x, r4.x, c60.x + temp2.x = temp4.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r3.xy, r2.xwzw + temp3.xy = frac(temp2.xw); + // add r2.xw, r2, -r3.xyzy + temp2.xw = temp2.xw + -temp3.xy; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o5.xy, r2.xwzw, c56.x + o.texcoord3.xy = temp2.xw * expr56.xx; + // frc o5.z, r0.w + o.texcoord3.z = frac(temp0.w); + // endif + } + // endif + } + // endif + } + // mov r3, c61 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.z, c62 + temp3 = temp3 * temp0.z + Draw.ColorAnimationFunctions[1]; + // slt r0.xw, r0.z, c67.yyzz + temp0.xw = (temp0.zz < Draw.TimeKeys.yz) ? 1 : 0; + // mov r4, c63 + temp4 = Draw.ColorAnimationFunctions[2]; + // mad r4, r4, r0.z, c64 + temp4 = temp4 * temp0.z + Draw.ColorAnimationFunctions[3]; + // mov r5, c65 + temp5 = Draw.ColorAnimationFunctions[4]; + // mad r5, r5, r0.z, c66 + temp5 = temp5 * temp0.z + Draw.ColorAnimationFunctions[5]; + // lrp r6, r0.w, r4, r5 + temp6 = lerp(temp5, temp4, temp0.w); + // lrp r4, r0.x, r3, r6 + temp4 = lerp(temp6, temp3, temp0.x); + // mad r0.x, v2.x, c33.z, c33.w + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c28.z + temp0.x = temp0.x * float1(16); + // frc r0.z, r0.x + temp0.z = frac(temp0.x); + // add r0.x, r0.x, -r0.z + temp0.x = temp0.x + -temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r3.xy, c70 + temp3.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r3.y, r3.x + temp0.x = float1(0.957897) * temp3.y + temp3.x; + // mul o2, r4, r0.x + o.color = temp4 * temp0.x; + // mad r0.xz, r2.yyzw, c88.x, v2.x + temp0.xz = temp2.yz * ParticleMiscValues.xx + i.texcoord1.xx; + // mul r2.xy, r0.xzzw, c58.x + temp2.xy = temp0.xz * expr58.xx; + // mul r0.w, r0.z, c57.x + temp0.w = temp0.z * expr57.x; + // mad r0.w, r0.x, c58.x, r0.w + temp0.w = temp0.x * expr58.x + temp0.w; + // mad o8.y, r0.x, -c57.x, r2.y + o.texcoord6.y = temp0.x * -expr57.x + temp2.y; + // add o8.x, r0.w, c59.x + o.texcoord6.x = temp0.w + expr59.x; + // mad r0.z, r0.z, -c57.x, r2.x + temp0.z = temp0.z * -expr57.x + temp2.x; + // mad o8.w, r0.x, c57.x, r2.y + o.texcoord6.w = temp0.x * expr57.x + temp2.y; + // add o8.z, r0.z, c59.x + o.texcoord6.z = temp0.z + expr59.x; + // mov o0, r1 + o.position = temp1; + // mov o3.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r1 + o.texcoord4 = temp1; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_3_0 Default_VertexShader26(); // 48 + PixelShader = PS_Array_H[Default_Expression25()]; // 49 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader24(); // 54 + PixelShader = PS_Array_M[Default_M_Expression23()]; // 55 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_L_VertexShader22(); // 57 + PixelShader = compile ps_2_0 Default_L_PixelShader21(); // 58 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader20(); // 66 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression19()]; // 67 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/gpuparticledistortion.fx b/gpuparticledistortion.fx new file mode 100644 index 0000000..3025948 --- /dev/null +++ b/gpuparticledistortion.fx @@ -0,0 +1,1252 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_2_0, c40) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_2_0, c72) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c58) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +int _SasGlobal : SasGlobal ; +texture NormalTexture ; // 10 +sampler2D NormalTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 13 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture DepthTexture ; // 17 +sampler2D DepthTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 19 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +bool ShouldDrawParticleSoft ; +column_major float4x4 WorldView : WorldView : register(vs_2_0, c64); +column_major float4x4 Projection : Projection : register(vs_2_0, c68); +row_major float4x4 WorldViewProjection : WorldViewProjection; +column_major float4x3 View : View : register(vs_2_0, c75); +row_major float4x3 World : World; +row_major float4x4 ProjectionI : ProjectionInverse; +float Time : Time; +// PS_Array_H_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_H_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; +}; + +float4 PS_Array_H_Shader_0(PS_Array_H_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2, -1, 0.5, 0 + // dcl t0.xy + // dcl t1 + // dcl t2.xyz + // dcl t3.xyz + // dcl t4.xyz + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(NormalTextureSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.w, r0.w, t1.w + temp1.w = temp0.w * i.texcoord1.w; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, t2 + temp0.x = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r0.y, r2, t3 + temp0.y = dot(temp2.xyz, i.texcoord3.xyz); + // dp3 r0.z, r2, t4 + temp0.z = dot(temp2.xyz, i.texcoord4.xyz); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mad r1.xyz, r0, c0.z, c0.z + temp1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5); + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_H_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_H_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_1(PS_Array_H_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0.5, -0.5 + // dcl t0.xy + // dcl t1 + // dcl t2.xyz + // dcl t3.xyz + // dcl t4.xyz + // dcl t5 + // dcl t6.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(NormalTextureSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.w, r0.w, t1.w + temp0.w = temp0.w * i.texcoord1.w; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r1, t2 + temp0.x = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r0.y, r1, t3 + temp0.y = dot(temp1.xyz, i.texcoord3.xyz); + // dp3 r0.z, r1, t4 + temp0.z = dot(temp1.xyz, i.texcoord4.xyz); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mad r1.xyz, r0, c0.z, c0.z + temp1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5); + // rcp r0.x, t5.w + temp0.x = 1.0f / i.texcoord5.w; + // mul r0.xy, r0.x, t5 + temp0.xy = temp0.xx * i.texcoord5.xy; + // mad r0.xy, r0, -c0.wzyx, -c0.w + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r2, r0, s1 + temp2 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r2.x, -t6.y, t6.x + temp0.x = saturate(temp2.x * -i.texcoord6.y + i.texcoord6.x); + // mul r1.w, r0.w, r0.x + temp1.w = temp0.w * temp0.x; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_Array_H[2] = { + compile ps_2_0 PS_Array_H_Shader_0(), // 24 + compile ps_2_0 PS_Array_H_Shader_1(), // 25 +}; +// Default_M_PixelShader3 Pixel_2_0 Has PRES False +struct Default_M_PixelShader3_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; +}; + +float4 Default_M_PixelShader3(Default_M_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2, -1, 0.5, 0 + // dcl t0.xy + // dcl t1 + // dcl t2.xyz + // dcl t3.xyz + // dcl t4.xyz + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(NormalTextureSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.w, r0.w, t1.w + temp1.w = temp0.w * i.texcoord1.w; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, t2 + temp0.x = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r0.y, r2, t3 + temp0.y = dot(temp2.xyz, i.texcoord3.xyz); + // dp3 r0.z, r2, t4 + temp0.z = dot(temp2.xyz, i.texcoord4.xyz); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mad r1.xyz, r0, c0.z, c0.z + temp1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5); + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_M_VertexShader4 Vertex_2_0 Has PRES True +struct Default_M_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader4_Output +{ + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord : TEXCOORD; + float2 texcoord6 : TEXCOORD6; + float4 position : POSITION; + float4 texcoord5 : TEXCOORD5; + float4 texcoord1 : TEXCOORD1; +}; + +Default_M_VertexShader4_Output Default_M_VertexShader4(Default_M_VertexShader4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 51 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 51 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 53 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c51.x, c7.x, (30) + expr51.x = Time.x * (30); + // mul r0.x, c0.z, c1.y + temp0.x = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).y; + // mul r0.y, c0.x, c1.z + temp0.y = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).z; + // mul r0.z, c0.y, c1.x + temp0.z = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).x; + // neg r1.xyz, r0.xyz + temp1.xyz = -temp0.xyz; + // mul r0.x, c0.y, c1.z + temp0.x = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).z; + // mul r0.y, c0.z, c1.x + temp0.y = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).x; + // mul r0.z, c0.x, c1.y + temp0.z = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).y; + // add r2.xyz, r1.xyz, r0.xyz + temp2.xyz = temp1.xyz + temp0.xyz; + // dot r0.xyz, r2.xyz, c3.xyz + temp0.xyz = dot(temp2.xyz, (World._m00_m10_m20_m30).xyz); + // dot r0.yzw, r2.xyz, c4.xyz + temp0.yzw = dot(temp2.xyz, (World._m01_m11_m21_m31).xyz); + // dot r0.zwx, r2.xyz, c5.xyz + temp0.zwx = dot(temp2.xyz, (World._m02_m12_m22_m32).xyz); + // dot r1.xyz, r0.xyz, r0.xyz + temp1.xyz = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r1.x + temp0.w = 1.0f / sqrt(temp1.x); + // mul r1.xyz, r0.w, r0.xyz + temp1.xyz = temp0.w * temp0.xyz; + // dot c55.xyz, r1.xyz, c0.xyz + expr55.xyz = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dot c56.xyz, r1.xyz, c1.xyz + expr56.xyz = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dot c57.xyz, r1.xyz, c2.xyz + expr57.xyz = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz); + // rcp c53.x, c6.y + expr53.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c54.x, c6.x + expr54.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + Default_M_VertexShader4_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float4 addr0; + float3 temp6; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c38, 1, -1, 0.5, 0 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0.2 + // def c31, 0, 0, 6.283185, -3.141593 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c39, 2, 1, -1, 0 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0.w, r0.w + addr0.w = temp0.w; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c63 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c62 + temp1.xyz = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r0.w, r1.z, c28.w + temp0.w = temp1.z + float1(-1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // sge r0.w, -r0.w, r0.w + temp0.w = (-temp0.w >= temp0.w) ? 1 : 0; + // lrp r2.x, r0.w, c29.z, r1.z + temp2.x = lerp(temp1.z, float1(1.0001), temp0.w); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.z, r0.w, c29.w + temp1.z = temp0.w * float1(0.6931472); + // rcp r1.z, r1.z + temp1.z = 1.0f / temp1.z; + // add r1.w, -v1.w, c51.x + temp1.w = -i.texcoord.w + expr51.x; + // mul r0.w, r0.w, r1.w + temp0.w = temp0.w * temp1.w; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c28.w + temp0.w = temp0.w + float1(-1); + // mul r0.w, r1.z, r0.w + temp0.w = temp1.z * temp0.w; + // mad r0.w, r1.y, r0.w, r1.x + temp0.w = temp1.y * temp0.w + temp1.x; + // mad r0.w, r0.w, c30.z, c30.y + temp0.w = temp0.w * float1(0.15915494) + float1(0.5); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mad r0.w, r0.w, c31.z, c31.w + temp0.w = temp0.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r0.w, c0, c1 + temp2.xy = float2(cos(temp0.w), sin(temp0.w)); + // mul r1.xyz, r2.y, c76 + temp1.xyz = temp2.yyy * (View._m01_m11_m21_m31).xyz; + // mad r1.xyz, r2.x, c75, r1 + temp1.xyz = temp2.xxx * (View._m00_m10_m20_m30).xyz + temp1.xyz; + // dp3 oT2.x, r1, c75 + o.texcoord2.x = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.x, r1, c76 + o.texcoord3.x = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.x, r1, c77 + o.texcoord4.x = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz); + // mul r1.xyz, r2.x, c76 + temp1.xyz = temp2.xxx * (View._m01_m11_m21_m31).xyz; + // mad r1.xyz, -r2.y, c75, r1 + temp1.xyz = -temp2.yyy * (View._m00_m10_m20_m30).xyz + temp1.xyz; + // dp3 oT2.y, r1, c75 + o.texcoord2.y = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.y, r1, c76 + o.texcoord3.y = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.y, r1, c77 + o.texcoord4.y = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz); + // mad r1.xy, v2.x, c37.x, c37.yzzw + temp1.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r1.xy, r1 + temp1.xy = frac(temp1.xy); + // mul r1.xy, r1, c28.z + temp1.xy = temp1.xy * float2(16, 16); + // frc r2.zw, r1.xyxy + temp2.zw = frac(temp1.xy); + // add r1.xy, r1, -r2.zwzw + temp1.xy = temp1.xy + -temp2.zw; + // mov r3.y, c40.y + temp3.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mova a0.w, r1.x + addr0.w = temp1.x; + // mul r0.w, r3.y, c11[a0.w].x + temp0.w = temp3.y * float1(0.957897); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mova a0.w, r1.x + addr0.w = temp1.x; + // mad r0.w, c11[a0.w].x, r3.y, -r0.w + temp0.w = float1(0.957897) * temp3.y + -temp0.w; + // mov r3.xy, c50 + temp3.xy = Draw.ColorScaleRange.xy; + // mova a0.w, r1.y + addr0.w = temp1.y; + // mad r1.x, c11[a0.w].x, r3.y, r3.x + temp1.x = float1(0.957897) * temp3.y + temp3.x; + // mad r0.w, r1.w, c49.x, r0.w + temp0.w = temp1.w * Draw.SpeedMultiplier.x + temp0.w; + // mul r0.w, r0.w, c53.x + temp0.w = temp0.w * expr53.x; + // abs r1.y, r0.w + temp1.y = abs(temp0.w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // lrp r2.z, r0.w, r1.y, -r1.y + temp2.z = lerp(-temp1.y, temp1.y, temp0.w); + // mul r0.w, r2.z, c40.y + temp0.w = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.w, c54.x + temp1.z = temp0.w * expr54.x; + // abs r0.w, r1.z + temp0.w = abs(temp1.z); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r2.z, r1.z, -r1.z + temp2.z = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r3.x, r2.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.z); + // mul r1.y, r3.x, c40.x + temp1.y = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1.xyyz + temp2.zw = frac(temp1.yz); + // add r1.yz, r1, -r2.xzww + temp1.yz = temp1.yz + -temp2.zw; + // slt r0.w, v0.w, r1.w + temp0.w = (i.position.w < temp1.w) ? 1 : 0; + // mad r0.w, r0.w, -v2.y, v2.y + temp0.w = temp0.w * -i.texcoord1.y + i.texcoord1.y; + // frc r2.z, r0.w + temp2.z = frac(temp0.w); + // add r0.w, r0.w, -r2.z + temp0.w = temp0.w + -temp2.z; + // mova a0.w, r0.w + addr0.w = temp0.w; + // mov r3.xy, c27[a0.w] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c38.xyxy, c38.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.yz, r1, r2.xzww + temp1.yz = temp1.yz + temp2.zw; + // mul oT0.xy, r1.yzzw, c54.x + o.texcoord = temp1.yzzw * expr54.x; + // mov r3.xy, c74 + temp3.xy = Physics.VelocityDampingRange.xy; + // mova a0.w, r0.y + addr0.w = temp0.y; + // mad r0.y, c11[a0.w].x, r3.y, r3.x + temp0.y = float1(0.957897) * temp3.y + temp3.x; + // add r1.y, r0.y, c28.w + temp1.y = temp0.y + float1(-1); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // sge r1.y, -r1.y, r1.y + temp1.y = (-temp1.y >= temp1.y) ? 1 : 0; + // lrp r2.z, r1.y, c29.z, r0.y + temp2.z = lerp(temp0.y, float1(1.0001), temp1.y); + // log r0.y, r2.z + temp0.y = log2(temp2.z); + // mul r1.y, r0.y, c29.w + temp1.y = temp0.y * float1(0.6931472); + // mul r0.y, r1.w, r0.y + temp0.y = temp1.w * temp0.y; + // rcp r1.y, r1.y + temp1.y = 1.0f / temp1.y; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r1.y, r0.y + temp0.y = temp1.y * temp0.y; + // mov r3.xyz, v0 + temp3.xyz = i.position.xyz; + // mad r3.xyz, v1, r0.y, r3 + temp3.xyz = i.texcoord.xyz * temp0.yyy + temp3.xyz; + // mul r0.y, r1.w, -c27.x + temp0.y = temp1.w * float1(0.5); + // mov r4.xyz, c72 + temp4.xyz = Physics.Gravity.xyz; + // mad r4.xyz, r0.y, r4, c73 + temp4.xyz = temp0.yyy * temp4.xyz + Physics.DriftVelocity.xyz; + // mad r3.xyz, r4, r1.w, r3 + temp3.xyz = temp4.xyz * temp1.www + temp3.xyz; + // add r4.xyz, r3.xyyw, -v0.xyyw + temp4.xyz = temp3.xyy + -i.position.xyy; + // mova a0.w, r0.z + addr0.w = temp0.z; + // mov r5.xyz, c11[a0.w] + temp5.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r6.xyz, c61 + temp6.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r5.xyz, r5, r6, c60 + temp5.xyz = temp5.xyz * temp6.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // mova a0.w, r0.x + addr0.w = temp0.x; + // mov r0.xyz, c11[a0.w] + temp0.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r6.xyz, c59 + temp6.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r0.xyz, r0, r6, c58 + temp0.xyz = temp0.xyz * temp6.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r1.y, r5.z, c28.w + temp1.y = temp5.z + float1(-1); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // sge r1.y, -r1.y, r1.y + temp1.y = (-temp1.y >= temp1.y) ? 1 : 0; + // lrp r2.z, r1.y, c29.z, r5.z + temp2.z = lerp(temp5.z, float1(1.0001), temp1.y); + // log r1.y, r2.z + temp1.y = log2(temp2.z); + // mul r1.z, r1.y, c29.w + temp1.z = temp1.y * float1(0.6931472); + // mul r1.y, r1.w, r1.y + temp1.y = temp1.w * temp1.y; + // rcp r1.z, r1.z + temp1.z = 1.0f / temp1.z; + // exp r1.y, r1.y + temp1.y = exp2(temp1.y); + // add r1.y, r1.y, c28.w + temp1.y = temp1.y + float1(-1); + // mul r1.y, r1.z, r1.y + temp1.y = temp1.z * temp1.y; + // mad r1.y, r5.y, r1.y, r5.x + temp1.y = temp5.y * temp1.y + temp5.x; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r5.xy, r1.y, c0, c1 + temp5.xy = float2(cos(temp1.y), sin(temp1.y)); + // mul r4.yzw, r4.xxyz, r5.xxyx + temp4.yzw = temp4.xyz * temp5.xyx; + // mad r1.z, r4.x, -r5.y, r4.w + temp1.z = temp4.x * -temp5.y + temp4.w; + // add r1.y, r4.z, r4.y + temp1.y = temp4.z + temp4.y; + // add r3.xy, r1.yzzw, v0 + temp3.xy = temp1.yz + i.position.xy; + // mova a0.w, r0.w + addr0.w = temp0.w; + // mul r2.xzw, r2.xyyx, c27[a0.w].xyyy + temp2.xzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mova a0.w, r0.w + addr0.w = temp0.w; + // mad r0.w, c27[a0.w].x, -r2.y, r2.w + temp0.w = float1(-0.5) * -temp2.y + temp2.w; + // add r1.y, r2.z, r2.x + temp1.y = temp2.z + temp2.x; + // mul r2.xyz, r0.w, c76 + temp2.xyz = temp0.www * (View._m01_m11_m21_m31).xyz; + // mad r2.xyz, r1.y, c75, r2 + temp2.xyz = temp1.yyy * (View._m00_m10_m20_m30).xyz + temp2.xyz; + // add r0.w, r0.z, c28.w + temp0.w = temp0.z + float1(-1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // sge r0.w, -r0.w, r0.w + temp0.w = (-temp0.w >= temp0.w) ? 1 : 0; + // lrp r1.y, r0.w, c29.z, r0.z + temp1.y = lerp(temp0.z, float1(1.0001), temp0.w); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // mul r0.w, r1.w, r0.z + temp0.w = temp1.w * temp0.z; + // mul r0.z, r0.z, c29.w + temp0.z = temp0.z * float1(0.6931472); + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c28.w + temp0.w = temp0.w + float1(-1); + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // mul r0.z, r0.w, r0.z + temp0.z = temp0.w * temp0.z; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r2.xyz, r0.x, r2, r3 + temp2.xyz = temp0.xxx * temp2.xyz + temp3.xyz; + // mul r0.x, r0.x, c30.w + temp0.x = temp0.x * float1(0.2); + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 r3.z, r2, c66 + temp3.z = dot(temp2, (WorldView._m02_m12_m22_m32)); + // rcp r0.x, r0.x + temp0.x = 1.0f / temp0.x; + // mul oT6.x, r3.z, r0.x + o.texcoord6.x = temp3.z * temp0.x; + // mov oT6.y, r0.x + o.texcoord6.y = temp0.x; + // dp4 r3.x, r2, c64 + temp3.x = dot(temp2, (WorldView._m00_m10_m20_m30)); + // dp4 r3.y, r2, c65 + temp3.y = dot(temp2, (WorldView._m01_m11_m21_m31)); + // dp4 r3.w, r2, c67 + temp3.w = dot(temp2, (WorldView._m03_m13_m23_m33)); + // dp4 r0.x, r3, c68 + temp0.x = dot(temp3, (Projection._m00_m10_m20_m30)); + // dp4 r0.y, r3, c69 + temp0.y = dot(temp3, (Projection._m01_m11_m21_m31)); + // dp4 r0.z, r3, c70 + temp0.z = dot(temp3, (Projection._m02_m12_m22_m32)); + // dp4 r0.w, r3, c71 + temp0.w = dot(temp3, (Projection._m03_m13_m23_m33)); + // mov oPos, r0 + o.position = temp0; + // mov oT5, r0 + o.texcoord5 = temp0; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.w, r0.x + temp0.x = temp1.w * temp0.x; + // mov r2, c43 + temp2 = Draw.ColorAnimationFunctions[2]; + // mad r2, r2, r0.x, c44 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r3, c45 + temp3 = Draw.ColorAnimationFunctions[4]; + // mad r3, r3, r0.x, c46 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c47 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r4, c41 + temp4 = Draw.ColorAnimationFunctions[0]; + // mad r4, r4, r0.x, c42 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r5, r0.z, r2, r3 + temp5 = lerp(temp3, temp2, temp0.z); + // lrp r2, r0.y, r4, r5 + temp2 = lerp(temp5, temp4, temp0.y); + // mul r0, r1.x, r2 + temp0 = temp1.x * temp2; + // mad oT1, r0, c39.xxxy, c39.zzzw + o.texcoord1 = temp0 * float4(2, 2, 2, 1) + float4(-1, -1, -1, 0); + // mov oT2.z, c55.x + o.texcoord2.z = expr55.x; + // mov oT3.z, c56.x + o.texcoord3.z = expr56.x; + // mov oT4.z, c57.x + o.texcoord4.z = expr57.x; + // + + return o; +} + +// Default_Expression5 Expression_2_0 Has PRES False +float Default_Expression5() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = ShouldDrawParticleSoft.x; + return expr0; +} + +// Default_VertexShader6 Vertex_2_0 Has PRES True +struct Default_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_VertexShader6_Output +{ + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord : TEXCOORD; + float2 texcoord6 : TEXCOORD6; + float4 position : POSITION; + float4 texcoord5 : TEXCOORD5; + float4 texcoord1 : TEXCOORD1; +}; + +Default_VertexShader6_Output Default_VertexShader6(Default_VertexShader6_Input i) +{ + /* + PRSI + OutputRegisterOffset: 51 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 7 + Unknown3: 0 + Unknown4: 0 + Unknown5: 51 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 53 ConstInput 5 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c51.x, c7.x, (30) + expr51.x = Time.x * (30); + // mul r0.x, c0.z, c1.y + temp0.x = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).y; + // mul r0.y, c0.x, c1.z + temp0.y = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).z; + // mul r0.z, c0.y, c1.x + temp0.z = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).x; + // neg r1.xyz, r0.xyz + temp1.xyz = -temp0.xyz; + // mul r0.x, c0.y, c1.z + temp0.x = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).z; + // mul r0.y, c0.z, c1.x + temp0.y = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).x; + // mul r0.z, c0.x, c1.y + temp0.z = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).y; + // add r2.xyz, r1.xyz, r0.xyz + temp2.xyz = temp1.xyz + temp0.xyz; + // dot r0.xyz, r2.xyz, c3.xyz + temp0.xyz = dot(temp2.xyz, (World._m00_m10_m20_m30).xyz); + // dot r0.yzw, r2.xyz, c4.xyz + temp0.yzw = dot(temp2.xyz, (World._m01_m11_m21_m31).xyz); + // dot r0.zwx, r2.xyz, c5.xyz + temp0.zwx = dot(temp2.xyz, (World._m02_m12_m22_m32).xyz); + // dot r1.xyz, r0.xyz, r0.xyz + temp1.xyz = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r1.x + temp0.w = 1.0f / sqrt(temp1.x); + // mul r1.xyz, r0.w, r0.xyz + temp1.xyz = temp0.w * temp0.xyz; + // dot c55.xyz, r1.xyz, c0.xyz + expr55.xyz = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dot c56.xyz, r1.xyz, c1.xyz + expr56.xyz = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dot c57.xyz, r1.xyz, c2.xyz + expr57.xyz = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz); + // rcp c53.x, c6.y + expr53.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c54.x, c6.x + expr54.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + Default_VertexShader6_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float4 addr0; + float3 temp6; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c38, 1, -1, 0.5, 0 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0.2 + // def c31, 0, 0, 6.283185, -3.141593 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c39, 2, 1, -1, 0 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0.w, r0.w + addr0.w = temp0.w; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c63 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c62 + temp1.xyz = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r0.w, r1.z, c28.w + temp0.w = temp1.z + float1(-1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // sge r0.w, -r0.w, r0.w + temp0.w = (-temp0.w >= temp0.w) ? 1 : 0; + // lrp r2.x, r0.w, c29.z, r1.z + temp2.x = lerp(temp1.z, float1(1.0001), temp0.w); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.z, r0.w, c29.w + temp1.z = temp0.w * float1(0.6931472); + // rcp r1.z, r1.z + temp1.z = 1.0f / temp1.z; + // add r1.w, -v1.w, c51.x + temp1.w = -i.texcoord.w + expr51.x; + // mul r0.w, r0.w, r1.w + temp0.w = temp0.w * temp1.w; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c28.w + temp0.w = temp0.w + float1(-1); + // mul r0.w, r1.z, r0.w + temp0.w = temp1.z * temp0.w; + // mad r0.w, r1.y, r0.w, r1.x + temp0.w = temp1.y * temp0.w + temp1.x; + // mad r0.w, r0.w, c30.z, c30.y + temp0.w = temp0.w * float1(0.15915494) + float1(0.5); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mad r0.w, r0.w, c31.z, c31.w + temp0.w = temp0.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r0.w, c0, c1 + temp2.xy = float2(cos(temp0.w), sin(temp0.w)); + // mul r1.xyz, r2.y, c76 + temp1.xyz = temp2.yyy * (View._m01_m11_m21_m31).xyz; + // mad r1.xyz, r2.x, c75, r1 + temp1.xyz = temp2.xxx * (View._m00_m10_m20_m30).xyz + temp1.xyz; + // dp3 oT2.x, r1, c75 + o.texcoord2.x = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.x, r1, c76 + o.texcoord3.x = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.x, r1, c77 + o.texcoord4.x = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz); + // mul r1.xyz, r2.x, c76 + temp1.xyz = temp2.xxx * (View._m01_m11_m21_m31).xyz; + // mad r1.xyz, -r2.y, c75, r1 + temp1.xyz = -temp2.yyy * (View._m00_m10_m20_m30).xyz + temp1.xyz; + // dp3 oT2.y, r1, c75 + o.texcoord2.y = dot(temp1.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT3.y, r1, c76 + o.texcoord3.y = dot(temp1.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT4.y, r1, c77 + o.texcoord4.y = dot(temp1.xyz, (View._m02_m12_m22_m32).xyz); + // mad r1.xy, v2.x, c37.x, c37.yzzw + temp1.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r1.xy, r1 + temp1.xy = frac(temp1.xy); + // mul r1.xy, r1, c28.z + temp1.xy = temp1.xy * float2(16, 16); + // frc r2.zw, r1.xyxy + temp2.zw = frac(temp1.xy); + // add r1.xy, r1, -r2.zwzw + temp1.xy = temp1.xy + -temp2.zw; + // mov r3.y, c40.y + temp3.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mova a0.w, r1.x + addr0.w = temp1.x; + // mul r0.w, r3.y, c11[a0.w].x + temp0.w = temp3.y * float1(0.957897); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mova a0.w, r1.x + addr0.w = temp1.x; + // mad r0.w, c11[a0.w].x, r3.y, -r0.w + temp0.w = float1(0.957897) * temp3.y + -temp0.w; + // mov r3.xy, c50 + temp3.xy = Draw.ColorScaleRange.xy; + // mova a0.w, r1.y + addr0.w = temp1.y; + // mad r1.x, c11[a0.w].x, r3.y, r3.x + temp1.x = float1(0.957897) * temp3.y + temp3.x; + // mad r0.w, r1.w, c49.x, r0.w + temp0.w = temp1.w * Draw.SpeedMultiplier.x + temp0.w; + // mul r0.w, r0.w, c53.x + temp0.w = temp0.w * expr53.x; + // abs r1.y, r0.w + temp1.y = abs(temp0.w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // lrp r2.z, r0.w, r1.y, -r1.y + temp2.z = lerp(-temp1.y, temp1.y, temp0.w); + // mul r0.w, r2.z, c40.y + temp0.w = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.w, c54.x + temp1.z = temp0.w * expr54.x; + // abs r0.w, r1.z + temp0.w = abs(temp1.z); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r2.z, r1.z, -r1.z + temp2.z = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r3.x, r2.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.z); + // mul r1.y, r3.x, c40.x + temp1.y = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1.xyyz + temp2.zw = frac(temp1.yz); + // add r1.yz, r1, -r2.xzww + temp1.yz = temp1.yz + -temp2.zw; + // slt r0.w, v0.w, r1.w + temp0.w = (i.position.w < temp1.w) ? 1 : 0; + // mad r0.w, r0.w, -v2.y, v2.y + temp0.w = temp0.w * -i.texcoord1.y + i.texcoord1.y; + // frc r2.z, r0.w + temp2.z = frac(temp0.w); + // add r0.w, r0.w, -r2.z + temp0.w = temp0.w + -temp2.z; + // mova a0.w, r0.w + addr0.w = temp0.w; + // mov r3.xy, c27[a0.w] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c38.xyxy, c38.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.yz, r1, r2.xzww + temp1.yz = temp1.yz + temp2.zw; + // mul oT0.xy, r1.yzzw, c54.x + o.texcoord = temp1.yzzw * expr54.x; + // mov r3.xy, c74 + temp3.xy = Physics.VelocityDampingRange.xy; + // mova a0.w, r0.y + addr0.w = temp0.y; + // mad r0.y, c11[a0.w].x, r3.y, r3.x + temp0.y = float1(0.957897) * temp3.y + temp3.x; + // add r1.y, r0.y, c28.w + temp1.y = temp0.y + float1(-1); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // sge r1.y, -r1.y, r1.y + temp1.y = (-temp1.y >= temp1.y) ? 1 : 0; + // lrp r2.z, r1.y, c29.z, r0.y + temp2.z = lerp(temp0.y, float1(1.0001), temp1.y); + // log r0.y, r2.z + temp0.y = log2(temp2.z); + // mul r1.y, r0.y, c29.w + temp1.y = temp0.y * float1(0.6931472); + // mul r0.y, r1.w, r0.y + temp0.y = temp1.w * temp0.y; + // rcp r1.y, r1.y + temp1.y = 1.0f / temp1.y; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r1.y, r0.y + temp0.y = temp1.y * temp0.y; + // mov r3.xyz, v0 + temp3.xyz = i.position.xyz; + // mad r3.xyz, v1, r0.y, r3 + temp3.xyz = i.texcoord.xyz * temp0.yyy + temp3.xyz; + // mul r0.y, r1.w, -c27.x + temp0.y = temp1.w * float1(0.5); + // mov r4.xyz, c72 + temp4.xyz = Physics.Gravity.xyz; + // mad r4.xyz, r0.y, r4, c73 + temp4.xyz = temp0.yyy * temp4.xyz + Physics.DriftVelocity.xyz; + // mad r3.xyz, r4, r1.w, r3 + temp3.xyz = temp4.xyz * temp1.www + temp3.xyz; + // add r4.xyz, r3.xyyw, -v0.xyyw + temp4.xyz = temp3.xyy + -i.position.xyy; + // mova a0.w, r0.z + addr0.w = temp0.z; + // mov r5.xyz, c11[a0.w] + temp5.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r6.xyz, c61 + temp6.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r5.xyz, r5, r6, c60 + temp5.xyz = temp5.xyz * temp6.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // mova a0.w, r0.x + addr0.w = temp0.x; + // mov r0.xyz, c11[a0.w] + temp0.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r6.xyz, c59 + temp6.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r0.xyz, r0, r6, c58 + temp0.xyz = temp0.xyz * temp6.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r1.y, r5.z, c28.w + temp1.y = temp5.z + float1(-1); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // sge r1.y, -r1.y, r1.y + temp1.y = (-temp1.y >= temp1.y) ? 1 : 0; + // lrp r2.z, r1.y, c29.z, r5.z + temp2.z = lerp(temp5.z, float1(1.0001), temp1.y); + // log r1.y, r2.z + temp1.y = log2(temp2.z); + // mul r1.z, r1.y, c29.w + temp1.z = temp1.y * float1(0.6931472); + // mul r1.y, r1.w, r1.y + temp1.y = temp1.w * temp1.y; + // rcp r1.z, r1.z + temp1.z = 1.0f / temp1.z; + // exp r1.y, r1.y + temp1.y = exp2(temp1.y); + // add r1.y, r1.y, c28.w + temp1.y = temp1.y + float1(-1); + // mul r1.y, r1.z, r1.y + temp1.y = temp1.z * temp1.y; + // mad r1.y, r5.y, r1.y, r5.x + temp1.y = temp5.y * temp1.y + temp5.x; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r5.xy, r1.y, c0, c1 + temp5.xy = float2(cos(temp1.y), sin(temp1.y)); + // mul r4.yzw, r4.xxyz, r5.xxyx + temp4.yzw = temp4.xyz * temp5.xyx; + // mad r1.z, r4.x, -r5.y, r4.w + temp1.z = temp4.x * -temp5.y + temp4.w; + // add r1.y, r4.z, r4.y + temp1.y = temp4.z + temp4.y; + // add r3.xy, r1.yzzw, v0 + temp3.xy = temp1.yz + i.position.xy; + // mova a0.w, r0.w + addr0.w = temp0.w; + // mul r2.xzw, r2.xyyx, c27[a0.w].xyyy + temp2.xzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mova a0.w, r0.w + addr0.w = temp0.w; + // mad r0.w, c27[a0.w].x, -r2.y, r2.w + temp0.w = float1(-0.5) * -temp2.y + temp2.w; + // add r1.y, r2.z, r2.x + temp1.y = temp2.z + temp2.x; + // mul r2.xyz, r0.w, c76 + temp2.xyz = temp0.www * (View._m01_m11_m21_m31).xyz; + // mad r2.xyz, r1.y, c75, r2 + temp2.xyz = temp1.yyy * (View._m00_m10_m20_m30).xyz + temp2.xyz; + // add r0.w, r0.z, c28.w + temp0.w = temp0.z + float1(-1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // sge r0.w, -r0.w, r0.w + temp0.w = (-temp0.w >= temp0.w) ? 1 : 0; + // lrp r1.y, r0.w, c29.z, r0.z + temp1.y = lerp(temp0.z, float1(1.0001), temp0.w); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // mul r0.w, r1.w, r0.z + temp0.w = temp1.w * temp0.z; + // mul r0.z, r0.z, c29.w + temp0.z = temp0.z * float1(0.6931472); + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c28.w + temp0.w = temp0.w + float1(-1); + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // mul r0.z, r0.w, r0.z + temp0.z = temp0.w * temp0.z; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r2.xyz, r0.x, r2, r3 + temp2.xyz = temp0.xxx * temp2.xyz + temp3.xyz; + // mul r0.x, r0.x, c30.w + temp0.x = temp0.x * float1(0.2); + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 r3.z, r2, c66 + temp3.z = dot(temp2, (WorldView._m02_m12_m22_m32)); + // rcp r0.x, r0.x + temp0.x = 1.0f / temp0.x; + // mul oT6.x, r3.z, r0.x + o.texcoord6.x = temp3.z * temp0.x; + // mov oT6.y, r0.x + o.texcoord6.y = temp0.x; + // dp4 r3.x, r2, c64 + temp3.x = dot(temp2, (WorldView._m00_m10_m20_m30)); + // dp4 r3.y, r2, c65 + temp3.y = dot(temp2, (WorldView._m01_m11_m21_m31)); + // dp4 r3.w, r2, c67 + temp3.w = dot(temp2, (WorldView._m03_m13_m23_m33)); + // dp4 r0.x, r3, c68 + temp0.x = dot(temp3, (Projection._m00_m10_m20_m30)); + // dp4 r0.y, r3, c69 + temp0.y = dot(temp3, (Projection._m01_m11_m21_m31)); + // dp4 r0.z, r3, c70 + temp0.z = dot(temp3, (Projection._m02_m12_m22_m32)); + // dp4 r0.w, r3, c71 + temp0.w = dot(temp3, (Projection._m03_m13_m23_m33)); + // mov oPos, r0 + o.position = temp0; + // mov oT5, r0 + o.texcoord5 = temp0; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.w, r0.x + temp0.x = temp1.w * temp0.x; + // mov r2, c43 + temp2 = Draw.ColorAnimationFunctions[2]; + // mad r2, r2, r0.x, c44 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r3, c45 + temp3 = Draw.ColorAnimationFunctions[4]; + // mad r3, r3, r0.x, c46 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c47 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r4, c41 + temp4 = Draw.ColorAnimationFunctions[0]; + // mad r4, r4, r0.x, c42 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r5, r0.z, r2, r3 + temp5 = lerp(temp3, temp2, temp0.z); + // lrp r2, r0.y, r4, r5 + temp2 = lerp(temp5, temp4, temp0.y); + // mul r0, r1.x, r2 + temp0 = temp1.x * temp2; + // mad oT1, r0, c39.xxxy, c39.zzzw + o.texcoord1 = temp0 * float4(2, 2, 2, 1) + float4(-1, -1, -1, 0); + // mov oT2.z, c55.x + o.texcoord2.z = expr55.x; + // mov oT3.z, c56.x + o.texcoord3.z = expr56.x; + // mov oT4.z, c57.x + o.texcoord4.z = expr57.x; + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader6(); // 27 + PixelShader = PS_Array_H[Default_Expression5()]; // 28 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader4(); // 30 + PixelShader = compile ps_2_0 Default_M_PixelShader3(); // 31 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ +} + diff --git a/gpuparticlelit.fx b/gpuparticlelit.fx new file mode 100644 index 0000000..31d64c7 --- /dev/null +++ b/gpuparticlelit.fx @@ -0,0 +1,1701 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_2_0, c39) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_2_0, c65) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c50) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTextureSampler ; // 8 +sampler2D ParticleTextureSamplerSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 15 +sampler2D NextFrameTextureSamplerSampler = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c61); +column_major float4x3 View : View : register(vs_2_0, c68); +row_major float4x3 World : World; +float Time : Time; +// PS_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_Array[3] = { + compile ps_2_0 PS_Array_Shader_0(), // 22 + compile ps_2_0 PS_Array_Shader_1(), // 23 + compile ps_2_0 PS_Array_Shader_2(), // 24 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord3 : TEXCOORD3) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t3.x + // mov r0, t3.x + temp0 = texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 31 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 32 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 33 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 34 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 35 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 36 +}; +// _CreateShadowMap_Expression10 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression10() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader11 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader11_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader11_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +_CreateShadowMap_VertexShader11_Output _CreateShadowMap_VertexShader11(_CreateShadowMap_VertexShader11_Input i) +{ + /* + PRSI + OutputRegisterOffset: 56 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 56 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 58 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c56.x, c6.x, (30) + expr56.x = Time.x * (30); + // mul r0.x, c3.z, c4.y + temp0.x = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).y; + // mul r0.y, c3.x, c4.z + temp0.y = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).z; + // mul r0.z, c3.y, c4.x + temp0.z = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).x; + // neg r1.xyz, r0.xyz + temp1.xyz = -temp0.xyz; + // mul r0.x, c3.y, c4.z + temp0.x = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).z; + // mul r0.y, c3.z, c4.x + temp0.y = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).x; + // mul r0.z, c3.x, c4.y + temp0.z = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).y; + // add r2.xyz, r1.xyz, r0.xyz + temp2.xyz = temp1.xyz + temp0.xyz; + // dot r0.xyz, r2.xyz, c0.xyz + temp0.xyz = dot(temp2.xyz, (World._m00_m10_m20_m30).xyz); + // dot r0.yzw, r2.xyz, c1.xyz + temp0.yzw = dot(temp2.xyz, (World._m01_m11_m21_m31).xyz); + // dot r0.zwx, r2.xyz, c2.xyz + temp0.zwx = dot(temp2.xyz, (World._m02_m12_m22_m32).xyz); + // dot r1.xyz, r0.xyz, r0.xyz + temp1.xyz = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r1.x + temp0.w = 1.0f / sqrt(temp1.x); + // mul c58.xyz, r0.w, r0.xyz + expr58.xyz = temp0.w * temp0.xyz; + // rcp c59.x, c5.y + expr59.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c60.x, c5.x + expr60.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + _CreateShadowMap_VertexShader11_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c38, 1, -1, 0.5, 0 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c32, -0.25, -0.25, -1.4142, 1.4142 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c67 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c56.x + temp0.z = -i.texcoord.w + expr56.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c65 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c66 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c53 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c52 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c55 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c54 + temp1.xyz = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // mov r2.xyz, c11[a0.x] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c51 + temp3.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c50 + temp2.xyz = temp2.xyz * temp3.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r1.w, r1.z, c28.w + temp1.w = temp1.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r2.w, r1.w, c29.z, r1.z + temp2.w = lerp(temp1.z, float1(1.0001), temp1.w); + // log r1.z, r2.w + temp1.z = log2(temp2.w); + // mul r1.w, r1.z, c29.w + temp1.w = temp1.z * float1(0.6931472); + // mul r1.z, r0.z, r1.z + temp1.z = temp0.z * temp1.z; + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // exp r1.z, r1.z + temp1.z = exp2(temp1.z); + // add r1.z, r1.z, c28.w + temp1.z = temp1.z + float1(-1); + // mul r1.z, r1.w, r1.z + temp1.z = temp1.w * temp1.z; + // mad r1.x, r1.y, r1.z, r1.x + temp1.x = temp1.y * temp1.z + temp1.x; + // mad r1.x, r1.x, c30.z, c30.y + temp1.x = temp1.x * float1(0.15915494) + float1(0.5); + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // mad r1.x, r1.x, c31.z, c31.w + temp1.x = temp1.x * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.x, c0, c1 + temp3.xy = float2(cos(temp1.x), sin(temp1.x)); + // slt r1.x, v0.w, r0.z + temp1.x = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.x, r1.x, -v2.y, v2.y + temp1.x = temp1.x * -i.texcoord1.y + i.texcoord1.y; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.x, r1.x, -r1.y + temp1.x = temp1.x + -temp1.y; + // mova a0.x, r1.x + addr0.x = temp1.x; + // mul r1.xyz, r3.xyxw, c27[a0.x].xyyw + temp1.xyz = temp3.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.z, c27[a0.x].x, -r3.y, r1.z + temp1.z = float1(-0.5) * -temp3.y + temp1.z; + // add r1.x, r1.y, r1.x + temp1.x = temp1.y + temp1.x; + // mul r1.yzw, r1.z, c69.xxyz + temp1.yzw = temp1.zzz * (View._m01_m11_m21_m31).xyz; + // mad r1.xyz, r1.x, c68, r1.yzww + temp1.xyz = temp1.xxx * (View._m00_m10_m20_m30).xyz + temp1.yzw; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.z, r1.w, c29.z, r2.z + temp3.z = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.z + temp1.w = log2(temp3.z); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.xyz, r1.w, r1, r0.xyww + temp1.xyz = temp1.www * temp1.xyz + temp0.xyw; + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp4 oPos.x, r1, c61 + o.position.x = dot(temp1, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c62 + o.position.y = dot(temp1, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c64 + temp0.y = dot(temp1, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c63 + temp0.x = dot(temp1, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT3.x, r0.x, r0.w + o.texcoord3 = temp0.x * temp0.w; + // mad r0.xy, v2.x, c37.x, c37.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xy, r0 + temp1.xy = frac(temp0.xy); + // add r0.xy, r0, -r1 + temp0.xy = temp0.xy + -temp1.xy; + // mova a0.yz, r0.xxyw + addr0.yz = temp0.xy; + // mov r0.y, c39.y + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.x, r0.y, c11[a0.y].x + temp0.x = temp0.y * float1(0.957897); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, c11[a0.y].x, r0.y, -r0.x + temp0.x = float1(0.957897) * temp0.y + -temp0.x; + // mov r1.xy, c49 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.z].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // mad r0.x, r0.z, c48.x, r0.x + temp0.x = temp0.z * Draw.SpeedMultiplier.x + temp0.x; + // mul r0.x, r0.x, c59.x + temp0.x = temp0.x * expr59.x; + // abs r0.w, r0.x + temp0.w = abs(temp0.x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // lrp r1.x, r0.x, r0.w, -r0.w + temp1.x = lerp(-temp0.w, temp0.w, temp0.x); + // mul r0.x, r1.x, c39.y + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.w, r0.x, c60.x + temp0.w = temp0.x * expr60.x; + // abs r1.x, r0.w + temp1.x = abs(temp0.w); + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // sge r1.y, r0.w, -r0.w + temp1.y = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r2.x, r1.y, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp1.y); + // mul r0.x, r2.x, c39.x + temp0.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.xy, r0.xwzw + temp1.xy = frac(temp0.xw); + // add r0.xw, r0, -r1.xyzy + temp0.xw = temp0.xw + -temp1.xy; + // mov r1.xy, c27[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad r1.zw, r1.xyxy, c38.xyxy, c38.z + temp1.zw = temp1.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r1.xy, r1, c32.zwzw + temp1.xy = temp1.xy * float2(-1.4142, 1.4142); + // add r0.xw, r0, r1.zyzw + temp0.xw = temp0.xw + temp1.zw; + // mul oT0.xy, r0.xwzw, c60.x + o.texcoord = temp0.xwzw * expr60.x; + // mul r2.xyz, r3.y, c69 + temp2.xyz = temp3.yyy * (View._m01_m11_m21_m31).xyz; + // mad r2.xyz, r3.x, -c68, r2 + temp2.xyz = temp3.xxx * -(View._m00_m10_m20_m30).xyz + temp2.xyz; + // mul r3.xzw, r3.x, c69.xyyz + temp3.xzw = temp3.xxx * (View._m01_m11_m21_m31).xyz; + // mad r3.xyz, r3.y, c68, r3.xzww + temp3.xyz = temp3.yyy * (View._m00_m10_m20_m30).xyz + temp3.xzw; + // mul r3.xyz, r1.y, r3 + temp3.xyz = temp1.yyy * temp3.xyz; + // mad r2.xyz, r1.x, r2, r3 + temp2.xyz = temp1.xxx * temp2.xyz + temp3.xyz; + // mad r0.x, r1.x, -r1.x, -c28.w + temp0.x = temp1.x * -temp1.x + float1(1); + // mad r0.x, r1.y, -r1.y, r0.x + temp0.x = temp1.y * -temp1.y + temp0.x; + // rsq r0.x, r0.x + temp0.x = 1 / sqrt(temp0.x); + // rcp r0.x, r0.x + temp0.x = 1.0f / temp0.x; + // mad r1.xyz, r0.x, c58, r2 + temp1.xyz = temp0.xxx * expr58.xyz + temp2.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // nrm r1.xyz, c6 + temp1.xyz = normalize(DirectionalLight[0].Direction.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // max r0.x, r0.x, c27.z + temp0.x = max(temp0.x, float1(0)); + // nrm r1.xyz, c8 + temp1.xyz = normalize(DirectionalLight[1].Direction.xyz).xyz; + // dp3 r0.w, r2, r1 + temp0.w = dot(temp2.xyz, temp1.xyz); + // max r0.w, r0.w, c27.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c7 + temp1.xyz = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, c5, r0.x, r1 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.xxx + temp1.xyz; + // nrm r3.xyz, c10 + temp3.xyz = normalize(DirectionalLight[2].Direction.xyz).xyz; + // dp3 r0.x, r2, r3 + temp0.x = dot(temp2.xyz, temp3.xyz); + // max r0.x, r0.x, c27.z + temp0.x = max(temp0.x, float1(0)); + // mad r1.xyz, c9, r0.x, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.xxx + temp1.xyz; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r2, c42 + temp2 = Draw.ColorAnimationFunctions[2]; + // mad r2, r2, r0.x, c43 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r3, c44 + temp3 = Draw.ColorAnimationFunctions[4]; + // mad r3, r3, r0.x, c45 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c46.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r4, c40 + temp4 = Draw.ColorAnimationFunctions[0]; + // mad r4, r4, r0.x, c41 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r5, r0.w, r2, r3 + temp5 = lerp(temp3, temp2, temp0.w); + // lrp r2, r0.z, r4, r5 + temp2 = lerp(temp5, temp4, temp0.z); + // mul r0, r0.y, r2 + temp0 = temp0.y * temp2; + // mov r1.w, -c28.w + temp1.w = float1(1); + // mul oD0, r1, r0 + o.color = temp1 * temp0; + // + + return o; +} + +// _Default_L_PixelShader12 Pixel_2_0 Has PRES False +struct _Default_L_PixelShader12_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 _Default_L_PixelShader12(_Default_L_PixelShader12_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _Default_L_VertexShader13 Vertex_2_0 Has PRES True +struct _Default_L_VertexShader13_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _Default_L_VertexShader13_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +_Default_L_VertexShader13_Output _Default_L_VertexShader13(_Default_L_VertexShader13_Input i) +{ + /* + PRSI + OutputRegisterOffset: 61 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 61 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr61; + float4 expr62; + float4 expr63; + { + // Expression_2_1 + // mul c61.x, c1.x, (30) + expr61.x = Time.x * (30); + // rcp c62.x, c0.y + expr62.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c63.x, c0.x + expr63.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + _Default_L_VertexShader13_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float2 addr0, temp5; + // def c36, 0.1875, 2.0625, 6.1875, 0 + // def c27, -0.5, -0.5, 16, -1 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 0.1591549, 0 + // def c30, -0.5, 0.5, 6.283185, -3.141593 + // def c28, 0.5, -0.5, 1.0001, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c31, 0, 0, 0, 0 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mad r0.xy, v2.x, c36.x, c36.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(2.0625, 6.1875); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c27.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r0.zw, r0.xyxy + temp0.zw = frac(temp0.xy); + // add r0.xy, r0, -r0.zwzw + temp0.xy = temp0.xy + -temp0.zw; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.xyz, c49 + temp0.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mov r0.w, c60.y + temp0.w = Physics.VelocityDampingRange.y; + // mov r1.xyz, c48 + temp1.xyz = Update.Size_Rate_Damping__Min.xyz; + // mov r1.w, c60.x + temp1.w = Physics.VelocityDampingRange.x; + // mad r0, c11[a0.x], r0, r1 + temp0 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp0 + temp1; + // add r1.xy, r0.zwzw, c27.w + temp1.xy = temp0.zw + float2(-1, -1); + // mul r1.xy, r1, r1 + temp1.xy = temp1.xy * temp1.xy; + // sge r1.xy, -r1, r1 + temp1.xy = (-temp1.xy >= temp1.xy) ? 1 : 0; + // lrp r2.xy, r1, c28.z, r0.zwzw + temp2.xy = lerp(temp0.zw, float2(1.0001, 1.0001), temp1.xy); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.x, r0.z, c28.w + temp1.x = temp0.z * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add r1.y, -v1.w, c61.x + temp1.y = -i.texcoord.w + expr61.x; + // mul r0.z, r0.z, r1.y + temp0.z = temp0.z * temp1.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c27.w + temp0.z = temp0.z + float1(-1); + // mul r0.z, r1.x, r0.z + temp0.z = temp1.x * temp0.z; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xzw, v1.xyyz, r0.z, r2.xyyz + temp1.xzw = i.texcoord.xyz * temp0.zzz + temp2.xyz; + // mul r0.z, r1.y, -c27.x + temp0.z = temp1.y * float1(0.5); + // mov r2.xyz, c58 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.z, r2, c59 + temp2.xyz = temp0.zzz * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xzw, r2.xyyz, r1.y, r1 + temp1.xzw = temp2.xyz * temp1.yyy + temp1.xzw; + // add r2.xyz, r1.xzzw, -v0.xyyw + temp2.xyz = temp1.xzz + -i.position.xyy; + // mov r3.xy, c51 + temp3.xy = Update.XYRotation_Rate_Damping__Spread.xy; + // mov r3.zw, c53.xyxy + temp3.zw = Update.ZRotation_Rate_Damping__Spread.xy; + // mov r4.xy, c50 + temp4.xy = Update.XYRotation_Rate_Damping__Min.xy; + // mov r4.zw, c52.xyxy + temp4.zw = Update.ZRotation_Rate_Damping__Min.xy; + // mad r3, c11[a0.y], r3, r4 + temp3 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp3 + temp4; + // mad r3.xy, r3.ywzw, r1.y, r3.xzzw + temp3.xy = temp3.yw * temp1.yy + temp3.xz; + // mad r3.xy, r3, c29.z, c29.x + temp3.xy = temp3.xy * float2(0.15915494, 0.15915494) + float2(0.5, 0.5); + // frc r3.xy, r3 + temp3.xy = frac(temp3.xy); + // mad r3.xy, r3, c30.z, c30.w + temp3.xy = temp3.xy * float2(6.2831855, 6.2831855) + float2(-3.1415927, -3.1415927); + // sincos r4.xy, r3.x, c0, c1 + temp4.xy = float2(cos(temp3.x), sin(temp3.x)); + // sincos r5.xy, r3.y, c0, c1 + temp5.xy = float2(cos(temp3.y), sin(temp3.y)); + // mul r2.yzw, r2.xxyz, r4.xxyx + temp2.yzw = temp2.xyz * temp4.xyx; + // mad r2.w, r2.x, -r4.y, r2.w + temp2.w = temp2.x * -temp4.y + temp2.w; + // add r2.x, r2.z, r2.y + temp2.x = temp2.z + temp2.y; + // add r1.xz, r2.xyww, v0.xyyw + temp1.xz = temp2.xw + i.position.xy; + // slt r0.z, v0.w, r1.y + temp0.z = (i.position.w < temp1.y) ? 1 : 0; + // mad r0.z, r0.z, -v2.y, v2.y + temp0.z = temp0.z * -i.texcoord1.y + i.texcoord1.y; + // frc r2.x, r0.z + temp2.x = frac(temp0.z); + // add r0.z, r0.z, -r2.x + temp0.z = temp0.z + -temp2.x; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.xyz, r5.xyxw, c27[a0.x].xyyw + temp2.xyz = temp5.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c27[a0.x].x, -r5.y, r2.z + temp0.z = float1(-0.5) * -temp5.y + temp2.z; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c37.xyxy, c37.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r2.x, r2.y, r2.x + temp2.x = temp2.y + temp2.x; + // mul r3.xyz, r0.z, c65 + temp3.xyz = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r3.xyz, r2.x, c64, r3 + temp3.xyz = temp2.xxx * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mul r0.z, r0.w, c28.w + temp0.z = temp0.w * float1(0.6931472); + // mul r0.w, r0.w, r1.y + temp0.w = temp0.w * temp1.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c27.w + temp0.w = temp0.w + float1(-1); + // mul r0.z, r0.z, r0.w + temp0.z = temp0.z * temp0.w; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r0.xyz, r0.x, r3, r1.xzww + temp0.xyz = temp0.xxx * temp3.xyz + temp1.xzw; + // mov r0.w, -c27.w + temp0.w = float1(1); + // dp4 oPos.x, r0, c54 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c55 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c56 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c57 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mul r0.x, r1.y, c47.x + temp0.x = temp1.y * Draw.SpeedMultiplier.x; + // mul r0.x, r0.x, c62.x + temp0.x = temp0.x * expr62.x; + // abs r0.y, r0.x + temp0.y = abs(temp0.x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // lrp r1.x, r0.x, r0.y, -r0.y + temp1.x = lerp(-temp0.y, temp0.y, temp0.x); + // mul r0.x, r1.x, c38.y + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c63.x + temp0.y = temp0.x * expr63.x; + // abs r0.z, r0.y + temp0.z = abs(temp0.y); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // sge r0.w, r0.y, -r0.y + temp0.w = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r1.x, r0.w, r0.z, -r0.z + temp1.x = lerp(-temp0.z, temp0.z, temp0.w); + // mul r0.x, r1.x, c38.x + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r0.zw, r0.xyxy + temp0.zw = frac(temp0.xy); + // add r0.xy, r0, -r0.zwzw + temp0.xy = temp0.xy + -temp0.zw; + // add r0.xy, r2.zwzw, r0 + temp0.xy = temp2.zw + temp0.xy; + // mul oT0.xy, r0, c63.x + o.texcoord = temp0 * expr63.x; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.y, r0.x + temp0.x = temp1.y * temp0.x; + // mov r1, c41 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c42 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c43 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c44 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c45 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c39 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c40 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // add r1, r3, -r4 + temp1 = temp3 + -temp4; + // mad oD0, r0.y, r1, r4 + o.color = temp0.y * temp1 + temp4; + // + + return o; +} + +// Default_M_Expression14 Expression_2_0 Has PRES False +float Default_M_Expression14() +{ + float1 expr0; + // mov c0.x, (0) + expr0.x = (0); + return expr0; +} + +// Default_M_VertexShader15 Vertex_2_0 Has PRES True +struct Default_M_VertexShader15_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader15_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +Default_M_VertexShader15_Output Default_M_VertexShader15(Default_M_VertexShader15_Input i) +{ + /* + PRSI + OutputRegisterOffset: 56 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 56 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 58 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c56.x, c6.x, (30) + expr56.x = Time.x * (30); + // mul r0.x, c3.z, c4.y + temp0.x = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).y; + // mul r0.y, c3.x, c4.z + temp0.y = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).z; + // mul r0.z, c3.y, c4.x + temp0.z = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).x; + // neg r1.xyz, r0.xyz + temp1.xyz = -temp0.xyz; + // mul r0.x, c3.y, c4.z + temp0.x = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).z; + // mul r0.y, c3.z, c4.x + temp0.y = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).x; + // mul r0.z, c3.x, c4.y + temp0.z = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).y; + // add r2.xyz, r1.xyz, r0.xyz + temp2.xyz = temp1.xyz + temp0.xyz; + // dot r0.xyz, r2.xyz, c0.xyz + temp0.xyz = dot(temp2.xyz, (World._m00_m10_m20_m30).xyz); + // dot r0.yzw, r2.xyz, c1.xyz + temp0.yzw = dot(temp2.xyz, (World._m01_m11_m21_m31).xyz); + // dot r0.zwx, r2.xyz, c2.xyz + temp0.zwx = dot(temp2.xyz, (World._m02_m12_m22_m32).xyz); + // dot r1.xyz, r0.xyz, r0.xyz + temp1.xyz = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r1.x + temp0.w = 1.0f / sqrt(temp1.x); + // mul c58.xyz, r0.w, r0.xyz + expr58.xyz = temp0.w * temp0.xyz; + // rcp c59.x, c5.y + expr59.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c60.x, c5.x + expr60.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + Default_M_VertexShader15_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c38, 1, -1, 0.5, 0 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c32, -0.25, -0.25, -1.4142, 1.4142 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c67 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c56.x + temp0.z = -i.texcoord.w + expr56.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c65 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c66 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c53 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c52 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c55 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c54 + temp1.xyz = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // mov r2.xyz, c11[a0.x] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c51 + temp3.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c50 + temp2.xyz = temp2.xyz * temp3.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r1.w, r1.z, c28.w + temp1.w = temp1.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r2.w, r1.w, c29.z, r1.z + temp2.w = lerp(temp1.z, float1(1.0001), temp1.w); + // log r1.z, r2.w + temp1.z = log2(temp2.w); + // mul r1.w, r1.z, c29.w + temp1.w = temp1.z * float1(0.6931472); + // mul r1.z, r0.z, r1.z + temp1.z = temp0.z * temp1.z; + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // exp r1.z, r1.z + temp1.z = exp2(temp1.z); + // add r1.z, r1.z, c28.w + temp1.z = temp1.z + float1(-1); + // mul r1.z, r1.w, r1.z + temp1.z = temp1.w * temp1.z; + // mad r1.x, r1.y, r1.z, r1.x + temp1.x = temp1.y * temp1.z + temp1.x; + // mad r1.x, r1.x, c30.z, c30.y + temp1.x = temp1.x * float1(0.15915494) + float1(0.5); + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // mad r1.x, r1.x, c31.z, c31.w + temp1.x = temp1.x * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.x, c0, c1 + temp3.xy = float2(cos(temp1.x), sin(temp1.x)); + // slt r1.x, v0.w, r0.z + temp1.x = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.x, r1.x, -v2.y, v2.y + temp1.x = temp1.x * -i.texcoord1.y + i.texcoord1.y; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.x, r1.x, -r1.y + temp1.x = temp1.x + -temp1.y; + // mova a0.x, r1.x + addr0.x = temp1.x; + // mul r1.xyz, r3.xyxw, c27[a0.x].xyyw + temp1.xyz = temp3.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.z, c27[a0.x].x, -r3.y, r1.z + temp1.z = float1(-0.5) * -temp3.y + temp1.z; + // add r1.x, r1.y, r1.x + temp1.x = temp1.y + temp1.x; + // mul r1.yzw, r1.z, c69.xxyz + temp1.yzw = temp1.zzz * (View._m01_m11_m21_m31).xyz; + // mad r1.xyz, r1.x, c68, r1.yzww + temp1.xyz = temp1.xxx * (View._m00_m10_m20_m30).xyz + temp1.yzw; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.z, r1.w, c29.z, r2.z + temp3.z = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.z + temp1.w = log2(temp3.z); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.xyz, r1.w, r1, r0.xyww + temp1.xyz = temp1.www * temp1.xyz + temp0.xyw; + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp4 oPos.x, r1, c61 + o.position.x = dot(temp1, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c62 + o.position.y = dot(temp1, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c64 + temp0.y = dot(temp1, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c63 + temp0.x = dot(temp1, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT3.x, r0.x, r0.w + o.texcoord3 = temp0.x * temp0.w; + // mad r0.xy, v2.x, c37.x, c37.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xy, r0 + temp1.xy = frac(temp0.xy); + // add r0.xy, r0, -r1 + temp0.xy = temp0.xy + -temp1.xy; + // mova a0.yz, r0.xxyw + addr0.yz = temp0.xy; + // mov r0.y, c39.y + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.x, r0.y, c11[a0.y].x + temp0.x = temp0.y * float1(0.957897); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, c11[a0.y].x, r0.y, -r0.x + temp0.x = float1(0.957897) * temp0.y + -temp0.x; + // mov r1.xy, c49 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.z].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // mad r0.x, r0.z, c48.x, r0.x + temp0.x = temp0.z * Draw.SpeedMultiplier.x + temp0.x; + // mul r0.x, r0.x, c59.x + temp0.x = temp0.x * expr59.x; + // abs r0.w, r0.x + temp0.w = abs(temp0.x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // lrp r1.x, r0.x, r0.w, -r0.w + temp1.x = lerp(-temp0.w, temp0.w, temp0.x); + // mul r0.x, r1.x, c39.y + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.w, r0.x, c60.x + temp0.w = temp0.x * expr60.x; + // abs r1.x, r0.w + temp1.x = abs(temp0.w); + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // sge r1.y, r0.w, -r0.w + temp1.y = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r2.x, r1.y, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp1.y); + // mul r0.x, r2.x, c39.x + temp0.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.xy, r0.xwzw + temp1.xy = frac(temp0.xw); + // add r0.xw, r0, -r1.xyzy + temp0.xw = temp0.xw + -temp1.xy; + // mov r1.xy, c27[a0.x] + temp1.xy = float2(-0.5, -0.5); + // mad r1.zw, r1.xyxy, c38.xyxy, c38.z + temp1.zw = temp1.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r1.xy, r1, c32.zwzw + temp1.xy = temp1.xy * float2(-1.4142, 1.4142); + // add r0.xw, r0, r1.zyzw + temp0.xw = temp0.xw + temp1.zw; + // mul oT0.xy, r0.xwzw, c60.x + o.texcoord = temp0.xwzw * expr60.x; + // mul r2.xyz, r3.y, c69 + temp2.xyz = temp3.yyy * (View._m01_m11_m21_m31).xyz; + // mad r2.xyz, r3.x, -c68, r2 + temp2.xyz = temp3.xxx * -(View._m00_m10_m20_m30).xyz + temp2.xyz; + // mul r3.xzw, r3.x, c69.xyyz + temp3.xzw = temp3.xxx * (View._m01_m11_m21_m31).xyz; + // mad r3.xyz, r3.y, c68, r3.xzww + temp3.xyz = temp3.yyy * (View._m00_m10_m20_m30).xyz + temp3.xzw; + // mul r3.xyz, r1.y, r3 + temp3.xyz = temp1.yyy * temp3.xyz; + // mad r2.xyz, r1.x, r2, r3 + temp2.xyz = temp1.xxx * temp2.xyz + temp3.xyz; + // mad r0.x, r1.x, -r1.x, -c28.w + temp0.x = temp1.x * -temp1.x + float1(1); + // mad r0.x, r1.y, -r1.y, r0.x + temp0.x = temp1.y * -temp1.y + temp0.x; + // rsq r0.x, r0.x + temp0.x = 1 / sqrt(temp0.x); + // rcp r0.x, r0.x + temp0.x = 1.0f / temp0.x; + // mad r1.xyz, r0.x, c58, r2 + temp1.xyz = temp0.xxx * expr58.xyz + temp2.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // nrm r1.xyz, c6 + temp1.xyz = normalize(DirectionalLight[0].Direction.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // max r0.x, r0.x, c27.z + temp0.x = max(temp0.x, float1(0)); + // nrm r1.xyz, c8 + temp1.xyz = normalize(DirectionalLight[1].Direction.xyz).xyz; + // dp3 r0.w, r2, r1 + temp0.w = dot(temp2.xyz, temp1.xyz); + // max r0.w, r0.w, c27.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c7 + temp1.xyz = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.xyz, c5, r0.x, r1 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.xxx + temp1.xyz; + // nrm r3.xyz, c10 + temp3.xyz = normalize(DirectionalLight[2].Direction.xyz).xyz; + // dp3 r0.x, r2, r3 + temp0.x = dot(temp2.xyz, temp3.xyz); + // max r0.x, r0.x, c27.z + temp0.x = max(temp0.x, float1(0)); + // mad r1.xyz, c9, r0.x, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.xxx + temp1.xyz; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r2, c42 + temp2 = Draw.ColorAnimationFunctions[2]; + // mad r2, r2, r0.x, c43 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r3, c44 + temp3 = Draw.ColorAnimationFunctions[4]; + // mad r3, r3, r0.x, c45 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c46.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r4, c40 + temp4 = Draw.ColorAnimationFunctions[0]; + // mad r4, r4, r0.x, c41 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r5, r0.w, r2, r3 + temp5 = lerp(temp3, temp2, temp0.w); + // lrp r2, r0.z, r4, r5 + temp2 = lerp(temp5, temp4, temp0.z); + // mul r0, r0.y, r2 + temp0 = temp0.y * temp2; + // mov r1.w, -c28.w + temp1.w = float1(1); + // mul oD0, r1, r0 + o.color = temp1 * temp0; + // + + return o; +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader15(); // 26 + PixelShader = PS_Array[Default_M_Expression14()]; // 27 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 _Default_L_VertexShader13(); // 29 + PixelShader = compile ps_2_0 _Default_L_PixelShader12(); // 30 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader11(); // 38 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression10()]; // 39 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/gpuparticlelitaccumlight.fx b/gpuparticlelitaccumlight.fx new file mode 100644 index 0000000..7614133 --- /dev/null +++ b/gpuparticlelitaccumlight.fx @@ -0,0 +1,1680 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(ps_2_0, c11) : register(vs_2_0, c40) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_2_0, c61) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c51) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTextureSampler ; // 8 +sampler2D ParticleTextureSamplerSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 15 +sampler2D NextFrameTextureSamplerSampler = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c57); +column_major float4x3 View : View : register(vs_2_0, c67); +float Time : Time; +// PS_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mul r0.xyz, r0, c21.x + temp0.xyz = temp0.xyz * Draw.ColorScaleRange.xxx; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mul r0.xyz, r0, c21.x + temp0.xyz = temp0.xyz * Draw.ColorScaleRange.xxx; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mul r0.xyz, r0, c21.x + temp0.xyz = temp0.xyz * Draw.ColorScaleRange.xxx; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_Array[3] = { + compile ps_2_0 PS_Array_Shader_0(), // 22 + compile ps_2_0 PS_Array_Shader_1(), // 23 + compile ps_2_0 PS_Array_Shader_2(), // 24 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord3 : TEXCOORD3) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t3.x + // mov r0, t3.x + temp0 = texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 31 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 32 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 33 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 34 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 35 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 36 +}; +// _CreateShadowMap_Expression10 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression10() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader11 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader11_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader11_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +_CreateShadowMap_VertexShader11_Output _CreateShadowMap_VertexShader11(_CreateShadowMap_VertexShader11_Input i) +{ + /* + PRSI + OutputRegisterOffset: 64 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 64 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr64; + float4 expr65; + float4 expr66; + { + // Expression_2_1 + // mul c64.x, c1.x, (30) + expr64.x = Time.x * (30); + // rcp c65.x, c0.y + expr65.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c66.x, c0.x + expr66.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + _CreateShadowMap_VertexShader11_Output o; + float4 temp0, temp1, temp2, addr0, temp3, temp4; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0.3333333 + // def c31, 0, 0, 6.283185, -3.141593 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c38, 1, -1, 0.5, 0 + // def c39, 10, 20, 30, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c32, -0.25, -0.25, 0.6875, 0.15 + // def c33, 0.25, -0.25, 2, -1 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.xw, c27 + temp0.xw = float2(-0.5, 0.1875); + // mad r1, v2.x, r0.w, c36 + temp1 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r1, r1 + temp1 = frac(temp1); + // mul r1, r1, c28.z + temp1 = temp1 * float4(16, 16, 16, 16); + // frc r2, r1 + temp2 = frac(temp1); + // add r1, r1, -r2 + temp1 = temp1 + -temp2; + // mova a0, r1 + addr0 = temp1; + // mov r1.xy, c63 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r0.y, c11[a0.y].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // add r0.z, r0.y, c28.w + temp0.z = temp0.y + float1(-1); + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // sge r0.z, -r0.z, r0.z + temp0.z = (-temp0.z >= temp0.z) ? 1 : 0; + // lrp r1.x, r0.z, c29.z, r0.y + temp1.x = lerp(temp0.y, float1(1.0001), temp0.z); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // mul r0.z, r0.y, c29.w + temp0.z = temp0.y * float1(0.6931472); + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // add r1.x, -v1.w, c64.x + temp1.x = -i.texcoord.w + expr64.x; + // mul r0.y, r0.y, r1.x + temp0.y = temp0.y * temp1.x; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.yzw, v1.xxyz, r0.y, r2.xxyz + temp1.yzw = i.texcoord.xyz * temp0.yyy + temp2.xyz; + // mul r0.y, r1.x, -c27.x + temp0.y = temp1.x * float1(0.5); + // mov r2.xyz, c61 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.y, r2, c62 + temp2.xyz = temp0.yyy * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.yzw, r2.xxyz, r1.x, r1 + temp1.yzw = temp2.xyz * temp1.xxx + temp1.yzw; + // add r2.xyz, r1.yzzw, -v0.xyyw + temp2.xyz = temp1.yzz + -i.position.xyy; + // mov r3.xyz, c11[a0.z] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c54 + temp4.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c53 + temp3.xyz = temp3.xyz * temp4.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r0.y, r3.z, c28.w + temp0.y = temp3.z + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r2.w, r0.y, c29.z, r3.z + temp2.w = lerp(temp3.z, float1(1.0001), temp0.y); + // log r0.y, r2.w + temp0.y = log2(temp2.w); + // mul r0.z, r0.y, c29.w + temp0.z = temp0.y * float1(0.6931472); + // mul r0.y, r1.x, r0.y + temp0.y = temp1.x * temp0.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mad r0.y, r3.y, r0.y, r3.x + temp0.y = temp3.y * temp0.y + temp3.x; + // mad r0.y, r0.y, c30.z, c30.y + temp0.y = temp0.y * float1(0.15915494) + float1(0.5); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // mad r0.y, r0.y, c31.z, c31.w + temp0.y = temp0.y * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r0.y, c0, c1 + temp3.xy = float2(cos(temp0.y), sin(temp0.y)); + // mul r2.yzw, r2.xxyz, r3.xxyx + temp2.yzw = temp2.xyz * temp3.xyx; + // mad r0.z, r2.x, -r3.y, r2.w + temp0.z = temp2.x * -temp3.y + temp2.w; + // add r0.y, r2.z, r2.y + temp0.y = temp2.z + temp2.y; + // add r1.yz, r0, v0.xxyw + temp1.yz = temp0.yz + i.position.xy; + // mov r2.xyz, c11[a0.w] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c56 + temp3.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c55 + temp2.xyz = temp2.xyz * temp3.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c52 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c51 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r0.y, r2.z, c28.w + temp0.y = temp2.z + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r3.w, r0.y, c29.z, r2.z + temp3.w = lerp(temp2.z, float1(1.0001), temp0.y); + // log r0.y, r3.w + temp0.y = log2(temp3.w); + // mul r0.z, r0.y, c29.w + temp0.z = temp0.y * float1(0.6931472); + // mul r0.y, r1.x, r0.y + temp0.y = temp1.x * temp0.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mad r0.y, r2.y, r0.y, r2.x + temp0.y = temp2.y * temp0.y + temp2.x; + // mad r0.y, r0.y, c30.z, c30.y + temp0.y = temp0.y * float1(0.15915494) + float1(0.5); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // mad r0.y, r0.y, c31.z, c31.w + temp0.y = temp0.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r0.y, c0, c1 + temp2.xy = float2(cos(temp0.y), sin(temp0.y)); + // slt r0.y, v0.w, r1.x + temp0.y = (i.position.w < temp1.x) ? 1 : 0; + // mad r0.y, r0.y, -v2.y, v2.y + temp0.y = temp0.y * -i.texcoord1.y + i.texcoord1.y; + // frc r0.z, r0.y + temp0.z = frac(temp0.y); + // add r0.y, r0.y, -r0.z + temp0.y = temp0.y + -temp0.z; + // mova a0.x, r0.y + addr0.x = temp0.y; + // mul r2.xzw, r2.xyyx, c27[a0.x].xyyy + temp2.xzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.y, c27[a0.x].x, -r2.y, r2.w + temp0.y = float1(-0.5) * -temp2.y + temp2.w; + // add r0.z, r2.z, r2.x + temp0.z = temp2.z + temp2.x; + // mul r2.xyz, r0.y, c68 + temp2.xyz = temp0.yyy * (View._m01_m11_m21_m31).xyz; + // mad r2.xyz, r0.z, c67, r2 + temp2.xyz = temp0.zzz * (View._m00_m10_m20_m30).xyz + temp2.xyz; + // add r0.y, r3.z, c28.w + temp0.y = temp3.z + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r2.w, r0.y, c29.z, r3.z + temp2.w = lerp(temp3.z, float1(1.0001), temp0.y); + // log r0.y, r2.w + temp0.y = log2(temp2.w); + // mul r0.z, r0.y, c29.w + temp0.z = temp0.y * float1(0.6931472); + // mul r0.y, r1.x, r0.y + temp0.y = temp1.x * temp0.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mad r0.y, r3.y, r0.y, r3.x + temp0.y = temp3.y * temp0.y + temp3.x; + // mad r2.xyz, r0.y, r2, r1.yzww + temp2.xyz = temp0.yyy * temp2.xyz + temp1.yzw; + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 oPos.x, r2, c57 + o.position.x = dot(temp2, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c58 + o.position.y = dot(temp2, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.z, r2, c60 + temp0.z = dot(temp2, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.y, r2, c59 + temp0.y = dot(temp2, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r1.y, r0.z + temp1.y = 1.0f / temp0.z; + // mov oPos.zw, r0.xyyz + o.position.zw = temp0.yz; + // mul oT3.x, r0.y, r1.y + o.texcoord3 = temp0.y * temp1.y; + // mad r0.yz, v2.x, c37.x, c37 + temp0.yz = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.yz, r0 + temp0.yz = frac(temp0.yz); + // mul r0.yz, r0, c28.z + temp0.yz = temp0.yz * float2(16, 16); + // frc r1.yz, r0 + temp1.yz = frac(temp0.yz); + // add r0.yz, r0, -r1 + temp0.yz = temp0.yz + -temp1.yz; + // mova a0.yz, r0 + addr0.yz = temp0.yz; + // mov r0.y, c40.y + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.z, r0.y, c11[a0.y].x + temp0.z = temp0.y * float1(0.957897); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // mad r0.y, c11[a0.y].x, r0.y, -r0.z + temp0.y = float1(0.957897) * temp0.y + -temp0.z; + // mov r2.xy, c50 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.z, c11[a0.z].x, r2.y, r2.x + temp0.z = float1(0.957897) * temp2.y + temp2.x; + // mad r0.y, r1.x, c49.x, r0.y + temp0.y = temp1.x * Draw.SpeedMultiplier.x + temp0.y; + // mul r0.y, r0.y, c65.x + temp0.y = temp0.y * expr65.x; + // abs r1.y, r0.y + temp1.y = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // lrp r2.x, r0.y, r1.y, -r1.y + temp2.x = lerp(-temp1.y, temp1.y, temp0.y); + // mul r0.y, r2.x, c40.y + temp0.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.y, c66.x + temp1.z = temp0.y * expr66.x; + // abs r0.y, r1.z + temp0.y = abs(temp1.z); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // sge r1.w, r1.z, -r1.z + temp1.w = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r2.x, r1.w, r0.y, -r0.y + temp2.x = lerp(-temp0.y, temp0.y, temp1.w); + // mul r1.y, r2.x, c40.x + temp1.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.yzzw + temp2.xy = frac(temp1.yz); + // add r1.yz, r1, -r2.xxyw + temp1.yz = temp1.yz + -temp2.xy; + // mov r2.xy, c27[a0.x] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c38, c38.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r0.y, r0.w, c27[a0.x].x + temp0.y = temp0.w * float1(-0.5); + // add r1.yz, r1, r2.xxyw + temp1.yz = temp1.yz + temp2.xy; + // mul r1.yz, r1, c66.x + temp1.yz = temp1.yz * expr66.xx; + // mad r0.w, v2.x, c32.z, r0.y + temp0.w = i.texcoord1.x * float1(0.6875) + temp0.y; + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mul r0.w, r0.w, c28.z + temp0.w = temp0.w * float1(16); + // frc r1.w, r0.w + temp1.w = frac(temp0.w); + // add r0.w, r0.w, -r1.w + temp0.w = temp0.w + -temp1.w; + // mova a0.x, r0.w + addr0.x = temp0.w; + // add r0.w, -r0.x, c11[a0.x].x + temp0.w = -temp0.x + float1(0.957897); + // add r2.xyz, v2.x, c39 + temp2.xyz = i.texcoord1.xxx + float3(10, 20, 30); + // mad r2.xyz, r2, c32.z, r0.y + temp2.xyz = temp2.xyz * float3(0.6875, 0.6875, 0.6875) + temp0.yyy; + // frc r2.xyz, r2 + temp2.xyz = frac(temp2.xyz); + // mul r2.xyz, r2, c28.z + temp2.xyz = temp2.xyz * float3(16, 16, 16); + // frc r3.xyz, r2 + temp3.xyz = frac(temp2.xyz); + // add r2.xyz, r2, -r3 + temp2.xyz = temp2.xyz + -temp3.xyz; + // mova a0.xyz, r2 + addr0.xyz = temp2.xyz; + // mov r2.zw, c33 + temp2.zw = float2(2, -1); + // mad r0.y, c11[a0.x].x, r2.z, r2.w + temp0.y = float1(0.957897) * temp2.z + temp2.w; + // slt r1.w, -r0.y, r0.y + temp1.w = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // add r0.y, r1.w, -r0.y + temp0.y = temp1.w + -temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // rcp r0.w, v0.w + temp0.w = 1.0f / i.position.w; + // mul r0.w, r1.x, r0.w + temp0.w = temp1.x * temp0.w; + // mul r0.y, r0.y, r0.w + temp0.y = temp0.y * temp0.w; + // mad oT0.x, r0.y, c32.w, r1.y + o.texcoord.x = temp0.y * float1(0.15) + temp1.y; + // mad r0.y, c11[a0.z].x, r2.z, r2.w + temp0.y = float1(0.957897) * temp2.z + temp2.w; + // add r0.x, -r0.x, c11[a0.y].x + temp0.x = -temp0.x + float1(0.957897); + // slt r1.x, -r0.y, r0.y + temp1.x = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // add r0.y, r1.x, -r0.y + temp0.y = temp1.x + -temp0.y; + // mul r0.x, r0.x, r0.y + temp0.x = temp0.x * temp0.y; + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // mad oT0.y, r0.x, c32.w, r1.z + o.texcoord.y = temp0.x * float1(0.15) + temp1.z; + // mov r1, c43 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.w, c44 + temp1 = temp1 * temp0.w + Draw.ColorAnimationFunctions[3]; + // mov r2, c45 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.w, c46 + temp2 = temp2 * temp0.w + Draw.ColorAnimationFunctions[5]; + // slt r0.xy, r0.w, c47.yzzw + temp0.xy = (temp0.ww < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c41 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.w, c42 + temp3 = temp3 * temp0.w + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.y, r1, r2 + temp4 = lerp(temp2, temp1, temp0.y); + // lrp r1, r0.x, r3, r4 + temp1 = lerp(temp4, temp3, temp0.x); + // mul r0, r0.z, r1 + temp0 = temp0.z * temp1; + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // add r1.xyz, r1, c7 + temp1.xyz = temp1.xyz + DirectionalLight[1].Color.xyz; + // add r1.xyz, r1, c9 + temp1.xyz = temp1.xyz + DirectionalLight[2].Color.xyz; + // mul r1.xyz, r1, c30.w + temp1.xyz = temp1.xyz * float3(0.33333334, 0.33333334, 0.33333334); + // mov r1.w, -c28.w + temp1.w = float1(1); + // mul oD0, r0, r1 + o.color = temp0 * temp1; + // + + return o; +} + +// _Default_L_PixelShader12 Pixel_2_0 Has PRES False +struct _Default_L_PixelShader12_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 _Default_L_PixelShader12(_Default_L_PixelShader12_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _Default_L_VertexShader13 Vertex_2_0 Has PRES True +struct _Default_L_VertexShader13_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _Default_L_VertexShader13_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +_Default_L_VertexShader13_Output _Default_L_VertexShader13(_Default_L_VertexShader13_Input i) +{ + /* + PRSI + OutputRegisterOffset: 61 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 61 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr61; + float4 expr62; + float4 expr63; + { + // Expression_2_1 + // mul c61.x, c1.x, (30) + expr61.x = Time.x * (30); + // rcp c62.x, c0.y + expr62.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c63.x, c0.x + expr63.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + _Default_L_VertexShader13_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float2 addr0, temp5; + // def c36, 0.1875, 2.0625, 6.1875, 0 + // def c27, -0.5, -0.5, 16, -1 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 0.1591549, 0 + // def c30, -0.5, 0.5, 6.283185, -3.141593 + // def c28, 0.5, -0.5, 1.0001, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c31, 0, 0, 0, 0 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mad r0.xy, v2.x, c36.x, c36.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(2.0625, 6.1875); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c27.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r0.zw, r0.xyxy + temp0.zw = frac(temp0.xy); + // add r0.xy, r0, -r0.zwzw + temp0.xy = temp0.xy + -temp0.zw; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.xyz, c49 + temp0.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mov r0.w, c60.y + temp0.w = Physics.VelocityDampingRange.y; + // mov r1.xyz, c48 + temp1.xyz = Update.Size_Rate_Damping__Min.xyz; + // mov r1.w, c60.x + temp1.w = Physics.VelocityDampingRange.x; + // mad r0, c11[a0.x], r0, r1 + temp0 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp0 + temp1; + // add r1.xy, r0.zwzw, c27.w + temp1.xy = temp0.zw + float2(-1, -1); + // mul r1.xy, r1, r1 + temp1.xy = temp1.xy * temp1.xy; + // sge r1.xy, -r1, r1 + temp1.xy = (-temp1.xy >= temp1.xy) ? 1 : 0; + // lrp r2.xy, r1, c28.z, r0.zwzw + temp2.xy = lerp(temp0.zw, float2(1.0001, 1.0001), temp1.xy); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.x, r0.z, c28.w + temp1.x = temp0.z * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add r1.y, -v1.w, c61.x + temp1.y = -i.texcoord.w + expr61.x; + // mul r0.z, r0.z, r1.y + temp0.z = temp0.z * temp1.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c27.w + temp0.z = temp0.z + float1(-1); + // mul r0.z, r1.x, r0.z + temp0.z = temp1.x * temp0.z; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xzw, v1.xyyz, r0.z, r2.xyyz + temp1.xzw = i.texcoord.xyz * temp0.zzz + temp2.xyz; + // mul r0.z, r1.y, -c27.x + temp0.z = temp1.y * float1(0.5); + // mov r2.xyz, c58 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.z, r2, c59 + temp2.xyz = temp0.zzz * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xzw, r2.xyyz, r1.y, r1 + temp1.xzw = temp2.xyz * temp1.yyy + temp1.xzw; + // add r2.xyz, r1.xzzw, -v0.xyyw + temp2.xyz = temp1.xzz + -i.position.xyy; + // mov r3.xy, c51 + temp3.xy = Update.XYRotation_Rate_Damping__Spread.xy; + // mov r3.zw, c53.xyxy + temp3.zw = Update.ZRotation_Rate_Damping__Spread.xy; + // mov r4.xy, c50 + temp4.xy = Update.XYRotation_Rate_Damping__Min.xy; + // mov r4.zw, c52.xyxy + temp4.zw = Update.ZRotation_Rate_Damping__Min.xy; + // mad r3, c11[a0.y], r3, r4 + temp3 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp3 + temp4; + // mad r3.xy, r3.ywzw, r1.y, r3.xzzw + temp3.xy = temp3.yw * temp1.yy + temp3.xz; + // mad r3.xy, r3, c29.z, c29.x + temp3.xy = temp3.xy * float2(0.15915494, 0.15915494) + float2(0.5, 0.5); + // frc r3.xy, r3 + temp3.xy = frac(temp3.xy); + // mad r3.xy, r3, c30.z, c30.w + temp3.xy = temp3.xy * float2(6.2831855, 6.2831855) + float2(-3.1415927, -3.1415927); + // sincos r4.xy, r3.x, c0, c1 + temp4.xy = float2(cos(temp3.x), sin(temp3.x)); + // sincos r5.xy, r3.y, c0, c1 + temp5.xy = float2(cos(temp3.y), sin(temp3.y)); + // mul r2.yzw, r2.xxyz, r4.xxyx + temp2.yzw = temp2.xyz * temp4.xyx; + // mad r2.w, r2.x, -r4.y, r2.w + temp2.w = temp2.x * -temp4.y + temp2.w; + // add r2.x, r2.z, r2.y + temp2.x = temp2.z + temp2.y; + // add r1.xz, r2.xyww, v0.xyyw + temp1.xz = temp2.xw + i.position.xy; + // slt r0.z, v0.w, r1.y + temp0.z = (i.position.w < temp1.y) ? 1 : 0; + // mad r0.z, r0.z, -v2.y, v2.y + temp0.z = temp0.z * -i.texcoord1.y + i.texcoord1.y; + // frc r2.x, r0.z + temp2.x = frac(temp0.z); + // add r0.z, r0.z, -r2.x + temp0.z = temp0.z + -temp2.x; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.xyz, r5.xyxw, c27[a0.x].xyyw + temp2.xyz = temp5.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c27[a0.x].x, -r5.y, r2.z + temp0.z = float1(-0.5) * -temp5.y + temp2.z; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c37.xyxy, c37.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r2.x, r2.y, r2.x + temp2.x = temp2.y + temp2.x; + // mul r3.xyz, r0.z, c65 + temp3.xyz = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r3.xyz, r2.x, c64, r3 + temp3.xyz = temp2.xxx * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mul r0.z, r0.w, c28.w + temp0.z = temp0.w * float1(0.6931472); + // mul r0.w, r0.w, r1.y + temp0.w = temp0.w * temp1.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c27.w + temp0.w = temp0.w + float1(-1); + // mul r0.z, r0.z, r0.w + temp0.z = temp0.z * temp0.w; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r0.xyz, r0.x, r3, r1.xzww + temp0.xyz = temp0.xxx * temp3.xyz + temp1.xzw; + // mov r0.w, -c27.w + temp0.w = float1(1); + // dp4 oPos.x, r0, c54 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c55 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c56 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c57 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mul r0.x, r1.y, c47.x + temp0.x = temp1.y * Draw.SpeedMultiplier.x; + // mul r0.x, r0.x, c62.x + temp0.x = temp0.x * expr62.x; + // abs r0.y, r0.x + temp0.y = abs(temp0.x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // lrp r1.x, r0.x, r0.y, -r0.y + temp1.x = lerp(-temp0.y, temp0.y, temp0.x); + // mul r0.x, r1.x, c38.y + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c63.x + temp0.y = temp0.x * expr63.x; + // abs r0.z, r0.y + temp0.z = abs(temp0.y); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // sge r0.w, r0.y, -r0.y + temp0.w = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r1.x, r0.w, r0.z, -r0.z + temp1.x = lerp(-temp0.z, temp0.z, temp0.w); + // mul r0.x, r1.x, c38.x + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r0.zw, r0.xyxy + temp0.zw = frac(temp0.xy); + // add r0.xy, r0, -r0.zwzw + temp0.xy = temp0.xy + -temp0.zw; + // add r0.xy, r2.zwzw, r0 + temp0.xy = temp2.zw + temp0.xy; + // mul oT0.xy, r0, c63.x + o.texcoord = temp0 * expr63.x; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.y, r0.x + temp0.x = temp1.y * temp0.x; + // mov r1, c41 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c42 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c43 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c44 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c45 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c39 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c40 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // add r1, r3, -r4 + temp1 = temp3 + -temp4; + // mad oD0, r0.y, r1, r4 + o.color = temp0.y * temp1 + temp4; + // + + return o; +} + +// Default_M_Expression14 Expression_2_0 Has PRES False +float Default_M_Expression14() +{ + float1 expr0; + // mov c0.x, (0) + expr0.x = (0); + return expr0; +} + +// Default_M_VertexShader15 Vertex_2_0 Has PRES True +struct Default_M_VertexShader15_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader15_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +Default_M_VertexShader15_Output Default_M_VertexShader15(Default_M_VertexShader15_Input i) +{ + /* + PRSI + OutputRegisterOffset: 64 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 64 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr64; + float4 expr65; + float4 expr66; + { + // Expression_2_1 + // mul c64.x, c1.x, (30) + expr64.x = Time.x * (30); + // rcp c65.x, c0.y + expr65.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c66.x, c0.x + expr66.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + Default_M_VertexShader15_Output o; + float4 temp0, temp1, temp2, addr0, temp3, temp4; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0.3333333 + // def c31, 0, 0, 6.283185, -3.141593 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c38, 1, -1, 0.5, 0 + // def c39, 10, 20, 30, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c32, -0.25, -0.25, 0.6875, 0.15 + // def c33, 0.25, -0.25, 2, -1 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.xw, c27 + temp0.xw = float2(-0.5, 0.1875); + // mad r1, v2.x, r0.w, c36 + temp1 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r1, r1 + temp1 = frac(temp1); + // mul r1, r1, c28.z + temp1 = temp1 * float4(16, 16, 16, 16); + // frc r2, r1 + temp2 = frac(temp1); + // add r1, r1, -r2 + temp1 = temp1 + -temp2; + // mova a0, r1 + addr0 = temp1; + // mov r1.xy, c63 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r0.y, c11[a0.y].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // add r0.z, r0.y, c28.w + temp0.z = temp0.y + float1(-1); + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // sge r0.z, -r0.z, r0.z + temp0.z = (-temp0.z >= temp0.z) ? 1 : 0; + // lrp r1.x, r0.z, c29.z, r0.y + temp1.x = lerp(temp0.y, float1(1.0001), temp0.z); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // mul r0.z, r0.y, c29.w + temp0.z = temp0.y * float1(0.6931472); + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // add r1.x, -v1.w, c64.x + temp1.x = -i.texcoord.w + expr64.x; + // mul r0.y, r0.y, r1.x + temp0.y = temp0.y * temp1.x; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.yzw, v1.xxyz, r0.y, r2.xxyz + temp1.yzw = i.texcoord.xyz * temp0.yyy + temp2.xyz; + // mul r0.y, r1.x, -c27.x + temp0.y = temp1.x * float1(0.5); + // mov r2.xyz, c61 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.y, r2, c62 + temp2.xyz = temp0.yyy * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.yzw, r2.xxyz, r1.x, r1 + temp1.yzw = temp2.xyz * temp1.xxx + temp1.yzw; + // add r2.xyz, r1.yzzw, -v0.xyyw + temp2.xyz = temp1.yzz + -i.position.xyy; + // mov r3.xyz, c11[a0.z] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c54 + temp4.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c53 + temp3.xyz = temp3.xyz * temp4.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r0.y, r3.z, c28.w + temp0.y = temp3.z + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r2.w, r0.y, c29.z, r3.z + temp2.w = lerp(temp3.z, float1(1.0001), temp0.y); + // log r0.y, r2.w + temp0.y = log2(temp2.w); + // mul r0.z, r0.y, c29.w + temp0.z = temp0.y * float1(0.6931472); + // mul r0.y, r1.x, r0.y + temp0.y = temp1.x * temp0.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mad r0.y, r3.y, r0.y, r3.x + temp0.y = temp3.y * temp0.y + temp3.x; + // mad r0.y, r0.y, c30.z, c30.y + temp0.y = temp0.y * float1(0.15915494) + float1(0.5); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // mad r0.y, r0.y, c31.z, c31.w + temp0.y = temp0.y * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r0.y, c0, c1 + temp3.xy = float2(cos(temp0.y), sin(temp0.y)); + // mul r2.yzw, r2.xxyz, r3.xxyx + temp2.yzw = temp2.xyz * temp3.xyx; + // mad r0.z, r2.x, -r3.y, r2.w + temp0.z = temp2.x * -temp3.y + temp2.w; + // add r0.y, r2.z, r2.y + temp0.y = temp2.z + temp2.y; + // add r1.yz, r0, v0.xxyw + temp1.yz = temp0.yz + i.position.xy; + // mov r2.xyz, c11[a0.w] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c56 + temp3.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c55 + temp2.xyz = temp2.xyz * temp3.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c52 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c51 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r0.y, r2.z, c28.w + temp0.y = temp2.z + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r3.w, r0.y, c29.z, r2.z + temp3.w = lerp(temp2.z, float1(1.0001), temp0.y); + // log r0.y, r3.w + temp0.y = log2(temp3.w); + // mul r0.z, r0.y, c29.w + temp0.z = temp0.y * float1(0.6931472); + // mul r0.y, r1.x, r0.y + temp0.y = temp1.x * temp0.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mad r0.y, r2.y, r0.y, r2.x + temp0.y = temp2.y * temp0.y + temp2.x; + // mad r0.y, r0.y, c30.z, c30.y + temp0.y = temp0.y * float1(0.15915494) + float1(0.5); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // mad r0.y, r0.y, c31.z, c31.w + temp0.y = temp0.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r0.y, c0, c1 + temp2.xy = float2(cos(temp0.y), sin(temp0.y)); + // slt r0.y, v0.w, r1.x + temp0.y = (i.position.w < temp1.x) ? 1 : 0; + // mad r0.y, r0.y, -v2.y, v2.y + temp0.y = temp0.y * -i.texcoord1.y + i.texcoord1.y; + // frc r0.z, r0.y + temp0.z = frac(temp0.y); + // add r0.y, r0.y, -r0.z + temp0.y = temp0.y + -temp0.z; + // mova a0.x, r0.y + addr0.x = temp0.y; + // mul r2.xzw, r2.xyyx, c27[a0.x].xyyy + temp2.xzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.y, c27[a0.x].x, -r2.y, r2.w + temp0.y = float1(-0.5) * -temp2.y + temp2.w; + // add r0.z, r2.z, r2.x + temp0.z = temp2.z + temp2.x; + // mul r2.xyz, r0.y, c68 + temp2.xyz = temp0.yyy * (View._m01_m11_m21_m31).xyz; + // mad r2.xyz, r0.z, c67, r2 + temp2.xyz = temp0.zzz * (View._m00_m10_m20_m30).xyz + temp2.xyz; + // add r0.y, r3.z, c28.w + temp0.y = temp3.z + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r2.w, r0.y, c29.z, r3.z + temp2.w = lerp(temp3.z, float1(1.0001), temp0.y); + // log r0.y, r2.w + temp0.y = log2(temp2.w); + // mul r0.z, r0.y, c29.w + temp0.z = temp0.y * float1(0.6931472); + // mul r0.y, r1.x, r0.y + temp0.y = temp1.x * temp0.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.y, r0.y + temp0.y = exp2(temp0.y); + // add r0.y, r0.y, c28.w + temp0.y = temp0.y + float1(-1); + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mad r0.y, r3.y, r0.y, r3.x + temp0.y = temp3.y * temp0.y + temp3.x; + // mad r2.xyz, r0.y, r2, r1.yzww + temp2.xyz = temp0.yyy * temp2.xyz + temp1.yzw; + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 oPos.x, r2, c57 + o.position.x = dot(temp2, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c58 + o.position.y = dot(temp2, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.z, r2, c60 + temp0.z = dot(temp2, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.y, r2, c59 + temp0.y = dot(temp2, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r1.y, r0.z + temp1.y = 1.0f / temp0.z; + // mov oPos.zw, r0.xyyz + o.position.zw = temp0.yz; + // mul oT3.x, r0.y, r1.y + o.texcoord3 = temp0.y * temp1.y; + // mad r0.yz, v2.x, c37.x, c37 + temp0.yz = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.yz, r0 + temp0.yz = frac(temp0.yz); + // mul r0.yz, r0, c28.z + temp0.yz = temp0.yz * float2(16, 16); + // frc r1.yz, r0 + temp1.yz = frac(temp0.yz); + // add r0.yz, r0, -r1 + temp0.yz = temp0.yz + -temp1.yz; + // mova a0.yz, r0 + addr0.yz = temp0.yz; + // mov r0.y, c40.y + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.z, r0.y, c11[a0.y].x + temp0.z = temp0.y * float1(0.957897); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // mad r0.y, c11[a0.y].x, r0.y, -r0.z + temp0.y = float1(0.957897) * temp0.y + -temp0.z; + // mov r2.xy, c50 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.z, c11[a0.z].x, r2.y, r2.x + temp0.z = float1(0.957897) * temp2.y + temp2.x; + // mad r0.y, r1.x, c49.x, r0.y + temp0.y = temp1.x * Draw.SpeedMultiplier.x + temp0.y; + // mul r0.y, r0.y, c65.x + temp0.y = temp0.y * expr65.x; + // abs r1.y, r0.y + temp1.y = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // lrp r2.x, r0.y, r1.y, -r1.y + temp2.x = lerp(-temp1.y, temp1.y, temp0.y); + // mul r0.y, r2.x, c40.y + temp0.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.y, c66.x + temp1.z = temp0.y * expr66.x; + // abs r0.y, r1.z + temp0.y = abs(temp1.z); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // sge r1.w, r1.z, -r1.z + temp1.w = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r2.x, r1.w, r0.y, -r0.y + temp2.x = lerp(-temp0.y, temp0.y, temp1.w); + // mul r1.y, r2.x, c40.x + temp1.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.yzzw + temp2.xy = frac(temp1.yz); + // add r1.yz, r1, -r2.xxyw + temp1.yz = temp1.yz + -temp2.xy; + // mov r2.xy, c27[a0.x] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c38, c38.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r0.y, r0.w, c27[a0.x].x + temp0.y = temp0.w * float1(-0.5); + // add r1.yz, r1, r2.xxyw + temp1.yz = temp1.yz + temp2.xy; + // mul r1.yz, r1, c66.x + temp1.yz = temp1.yz * expr66.xx; + // mad r0.w, v2.x, c32.z, r0.y + temp0.w = i.texcoord1.x * float1(0.6875) + temp0.y; + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mul r0.w, r0.w, c28.z + temp0.w = temp0.w * float1(16); + // frc r1.w, r0.w + temp1.w = frac(temp0.w); + // add r0.w, r0.w, -r1.w + temp0.w = temp0.w + -temp1.w; + // mova a0.x, r0.w + addr0.x = temp0.w; + // add r0.w, -r0.x, c11[a0.x].x + temp0.w = -temp0.x + float1(0.957897); + // add r2.xyz, v2.x, c39 + temp2.xyz = i.texcoord1.xxx + float3(10, 20, 30); + // mad r2.xyz, r2, c32.z, r0.y + temp2.xyz = temp2.xyz * float3(0.6875, 0.6875, 0.6875) + temp0.yyy; + // frc r2.xyz, r2 + temp2.xyz = frac(temp2.xyz); + // mul r2.xyz, r2, c28.z + temp2.xyz = temp2.xyz * float3(16, 16, 16); + // frc r3.xyz, r2 + temp3.xyz = frac(temp2.xyz); + // add r2.xyz, r2, -r3 + temp2.xyz = temp2.xyz + -temp3.xyz; + // mova a0.xyz, r2 + addr0.xyz = temp2.xyz; + // mov r2.zw, c33 + temp2.zw = float2(2, -1); + // mad r0.y, c11[a0.x].x, r2.z, r2.w + temp0.y = float1(0.957897) * temp2.z + temp2.w; + // slt r1.w, -r0.y, r0.y + temp1.w = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // add r0.y, r1.w, -r0.y + temp0.y = temp1.w + -temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // rcp r0.w, v0.w + temp0.w = 1.0f / i.position.w; + // mul r0.w, r1.x, r0.w + temp0.w = temp1.x * temp0.w; + // mul r0.y, r0.y, r0.w + temp0.y = temp0.y * temp0.w; + // mad oT0.x, r0.y, c32.w, r1.y + o.texcoord.x = temp0.y * float1(0.15) + temp1.y; + // mad r0.y, c11[a0.z].x, r2.z, r2.w + temp0.y = float1(0.957897) * temp2.z + temp2.w; + // add r0.x, -r0.x, c11[a0.y].x + temp0.x = -temp0.x + float1(0.957897); + // slt r1.x, -r0.y, r0.y + temp1.x = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // add r0.y, r1.x, -r0.y + temp0.y = temp1.x + -temp0.y; + // mul r0.x, r0.x, r0.y + temp0.x = temp0.x * temp0.y; + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // mad oT0.y, r0.x, c32.w, r1.z + o.texcoord.y = temp0.x * float1(0.15) + temp1.z; + // mov r1, c43 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.w, c44 + temp1 = temp1 * temp0.w + Draw.ColorAnimationFunctions[3]; + // mov r2, c45 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.w, c46 + temp2 = temp2 * temp0.w + Draw.ColorAnimationFunctions[5]; + // slt r0.xy, r0.w, c47.yzzw + temp0.xy = (temp0.ww < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c41 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.w, c42 + temp3 = temp3 * temp0.w + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.y, r1, r2 + temp4 = lerp(temp2, temp1, temp0.y); + // lrp r1, r0.x, r3, r4 + temp1 = lerp(temp4, temp3, temp0.x); + // mul r0, r0.z, r1 + temp0 = temp0.z * temp1; + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // add r1.xyz, r1, c7 + temp1.xyz = temp1.xyz + DirectionalLight[1].Color.xyz; + // add r1.xyz, r1, c9 + temp1.xyz = temp1.xyz + DirectionalLight[2].Color.xyz; + // mul r1.xyz, r1, c30.w + temp1.xyz = temp1.xyz * float3(0.33333334, 0.33333334, 0.33333334); + // mov r1.w, -c28.w + temp1.w = float1(1); + // mul oD0, r0, r1 + o.color = temp0 * temp1; + // + + return o; +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader15(); // 26 + PixelShader = PS_Array[Default_M_Expression14()]; // 27 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 _Default_L_VertexShader13(); // 29 + PixelShader = compile ps_2_0 _Default_L_PixelShader12(); // 30 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader11(); // 38 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression10()]; // 39 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/gpuparticlenormalmap.fx b/gpuparticlenormalmap.fx new file mode 100644 index 0000000..06250d6 --- /dev/null +++ b/gpuparticlenormalmap.fx @@ -0,0 +1,1844 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(ps_2_0, c5) : register(vs_2_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier : register(ps_2_0, c3) = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_2_0, c39) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_2_0, c65) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c50) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTextureSampler ; // 8 +sampler2D ParticleTextureSamplerSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 15 +sampler2D NextFrameTextureSamplerSampler = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NormalTextureSampler ; // 22 +sampler2D NormalTextureSamplerSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 25 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c61); +column_major float4x3 View : View : register(vs_2_0, c68); +row_major float4x3 World : World; +float Time : Time; +// PS_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 10, 0 + // dcl t0.xy + // dcl v0 + // dcl t5.xyz + // dcl t6.xyz + // dcl t7.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s1 + temp0 = tex2D(NormalTextureSamplerSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(10, 10, 10); + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r2.w, r2, t6 + temp2.w = dot(temp2.xyz, i.texcoord6.xyz); + // max r0.x, r2.w, c0.w + temp0.x = max(temp2.w, float1(0)); + // mov r3.xyz, c3 + temp3.xyz = NoCloudMultiplier.xyz; + // mul r0.yzw, r3.wzyx, c7.wzyx + temp0.yzw = temp3.zyx * DirectionalLight[1].Color.zyx; + // mul r0.xyz, r0.x, r0.wzyx + temp0.xyz = temp0.xxx * temp0.wzy; + // dp3 r0.w, r2, t5 + temp0.w = dot(temp2.xyz, i.texcoord5.xyz); + // dp3 r3.w, r2, t7 + temp3.w = dot(temp2.xyz, i.texcoord7.xyz); + // max r2.x, r0.w, c0.w + temp2.x = max(temp0.w, float1(0)); + // mul r2.yzw, r3.wzyx, c5.wzyx + temp2.yzw = temp3.zyx * DirectionalLight[0].Color.zyx; + // mad r0.xyz, r2.wzyx, r2.x, r0 + temp0.xyz = temp2.wzy * temp2.xxx + temp0.xyz; + // max r0.w, r3.w, c0.w + temp0.w = max(temp3.w, float1(0)); + // mul r2.xyz, r3, c9 + temp2.xyz = temp3.xyz * DirectionalLight[2].Color.xyz; + // mad r0.xyz, r2, r0.w, r0 + temp0.xyz = temp2.xyz * temp0.www + temp0.xyz; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.xyz, r0, r1 + temp1.xyz = temp0.xyz * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 10, 0 + // dcl t0.xy + // dcl v0 + // dcl t5.xyz + // dcl t6.xyz + // dcl t7.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s1 + temp0 = tex2D(NormalTextureSamplerSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(10, 10, 10); + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r2.w, r2, t6 + temp2.w = dot(temp2.xyz, i.texcoord6.xyz); + // max r0.x, r2.w, c0.w + temp0.x = max(temp2.w, float1(0)); + // mov r3.xyz, c3 + temp3.xyz = NoCloudMultiplier.xyz; + // mul r0.yzw, r3.wzyx, c7.wzyx + temp0.yzw = temp3.zyx * DirectionalLight[1].Color.zyx; + // mul r0.xyz, r0.x, r0.wzyx + temp0.xyz = temp0.xxx * temp0.wzy; + // dp3 r0.w, r2, t5 + temp0.w = dot(temp2.xyz, i.texcoord5.xyz); + // dp3 r3.w, r2, t7 + temp3.w = dot(temp2.xyz, i.texcoord7.xyz); + // max r2.x, r0.w, c0.w + temp2.x = max(temp0.w, float1(0)); + // mul r2.yzw, r3.wzyx, c5.wzyx + temp2.yzw = temp3.zyx * DirectionalLight[0].Color.zyx; + // mad r0.xyz, r2.wzyx, r2.x, r0 + temp0.xyz = temp2.wzy * temp2.xxx + temp0.xyz; + // max r0.w, r3.w, c0.w + temp0.w = max(temp3.w, float1(0)); + // mul r2.xyz, r3, c9 + temp2.xyz = temp3.xyz * DirectionalLight[2].Color.xyz; + // mad r0.xyz, r2, r0.w, r0 + temp0.xyz = temp2.xyz * temp0.www + temp0.xyz; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.xyz, r0, r1 + temp1.xyz = temp0.xyz * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 10, 0 + // dcl t0.xy + // dcl v0 + // dcl t5.xyz + // dcl t6.xyz + // dcl t7.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s1 + temp0 = tex2D(NormalTextureSamplerSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(10, 10, 10); + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r2.w, r2, t6 + temp2.w = dot(temp2.xyz, i.texcoord6.xyz); + // max r0.x, r2.w, c0.w + temp0.x = max(temp2.w, float1(0)); + // mov r3.xyz, c3 + temp3.xyz = NoCloudMultiplier.xyz; + // mul r0.yzw, r3.wzyx, c7.wzyx + temp0.yzw = temp3.zyx * DirectionalLight[1].Color.zyx; + // mul r0.xyz, r0.x, r0.wzyx + temp0.xyz = temp0.xxx * temp0.wzy; + // dp3 r0.w, r2, t5 + temp0.w = dot(temp2.xyz, i.texcoord5.xyz); + // dp3 r3.w, r2, t7 + temp3.w = dot(temp2.xyz, i.texcoord7.xyz); + // max r2.x, r0.w, c0.w + temp2.x = max(temp0.w, float1(0)); + // mul r2.yzw, r3.wzyx, c5.wzyx + temp2.yzw = temp3.zyx * DirectionalLight[0].Color.zyx; + // mad r0.xyz, r2.wzyx, r2.x, r0 + temp0.xyz = temp2.wzy * temp2.xxx + temp0.xyz; + // max r0.w, r3.w, c0.w + temp0.w = max(temp3.w, float1(0)); + // mul r2.xyz, r3, c9 + temp2.xyz = temp3.xyz * DirectionalLight[2].Color.xyz; + // mad r0.xyz, r2, r0.w, r0 + temp0.xyz = temp2.xyz * temp0.www + temp0.xyz; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.xyz, r0, r1 + temp1.xyz = temp0.xyz * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_Array[3] = { + compile ps_2_0 PS_Array_Shader_0(), // 29 + compile ps_2_0 PS_Array_Shader_1(), // 30 + compile ps_2_0 PS_Array_Shader_2(), // 31 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord3 : TEXCOORD3) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t3.x + // mov r0, t3.x + temp0 = texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord3 : TEXCOORD3; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t3.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t3.x + temp0 = i.texcoord3.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 38 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 39 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 40 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 41 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 42 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 43 +}; +// _CreateShadowMap_Expression10 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression10() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader11 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader11_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader11_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 texcoord7 : TEXCOORD7; + float2 texcoord : TEXCOORD; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; +}; + +_CreateShadowMap_VertexShader11_Output _CreateShadowMap_VertexShader11(_CreateShadowMap_VertexShader11_Input i) +{ + /* + PRSI + OutputRegisterOffset: 56 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 56 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 58 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c56.x, c6.x, (30) + expr56.x = Time.x * (30); + // mul r0.x, c3.z, c4.y + temp0.x = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).y; + // mul r0.y, c3.x, c4.z + temp0.y = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).z; + // mul r0.z, c3.y, c4.x + temp0.z = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).x; + // neg r1.xyz, r0.xyz + temp1.xyz = -temp0.xyz; + // mul r0.x, c3.y, c4.z + temp0.x = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).z; + // mul r0.y, c3.z, c4.x + temp0.y = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).x; + // mul r0.z, c3.x, c4.y + temp0.z = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).y; + // add r2.xyz, r1.xyz, r0.xyz + temp2.xyz = temp1.xyz + temp0.xyz; + // dot r0.xyz, r2.xyz, c0.xyz + temp0.xyz = dot(temp2.xyz, (World._m00_m10_m20_m30).xyz); + // dot r0.yzw, r2.xyz, c1.xyz + temp0.yzw = dot(temp2.xyz, (World._m01_m11_m21_m31).xyz); + // dot r0.zwx, r2.xyz, c2.xyz + temp0.zwx = dot(temp2.xyz, (World._m02_m12_m22_m32).xyz); + // dot r1.xyz, r0.xyz, r0.xyz + temp1.xyz = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r1.x + temp0.w = 1.0f / sqrt(temp1.x); + // mul c58.xyz, r0.w, r0.xyz + expr58.xyz = temp0.w * temp0.xyz; + // rcp c59.x, c5.y + expr59.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c60.x, c5.x + expr60.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + _CreateShadowMap_VertexShader11_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c38, 1, -1, 0.5, 0 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c67 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c56.x + temp0.z = -i.texcoord.w + expr56.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c65 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c66 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c53 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c52 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c55 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c54 + temp1.xyz = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // mov r2.xyz, c11[a0.x] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c51 + temp3.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c50 + temp2.xyz = temp2.xyz * temp3.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r1.w, r1.z, c28.w + temp1.w = temp1.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r2.w, r1.w, c29.z, r1.z + temp2.w = lerp(temp1.z, float1(1.0001), temp1.w); + // log r1.z, r2.w + temp1.z = log2(temp2.w); + // mul r1.w, r1.z, c29.w + temp1.w = temp1.z * float1(0.6931472); + // mul r1.z, r0.z, r1.z + temp1.z = temp0.z * temp1.z; + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // exp r1.z, r1.z + temp1.z = exp2(temp1.z); + // add r1.z, r1.z, c28.w + temp1.z = temp1.z + float1(-1); + // mul r1.z, r1.w, r1.z + temp1.z = temp1.w * temp1.z; + // mad r1.x, r1.y, r1.z, r1.x + temp1.x = temp1.y * temp1.z + temp1.x; + // mad r1.x, r1.x, c30.z, c30.y + temp1.x = temp1.x * float1(0.15915494) + float1(0.5); + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // mad r1.x, r1.x, c31.z, c31.w + temp1.x = temp1.x * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.x, c0, c1 + temp3.xy = float2(cos(temp1.x), sin(temp1.x)); + // slt r1.x, v0.w, r0.z + temp1.x = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.x, r1.x, -v2.y, v2.y + temp1.x = temp1.x * -i.texcoord1.y + i.texcoord1.y; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.x, r1.x, -r1.y + temp1.x = temp1.x + -temp1.y; + // mova a0.x, r1.x + addr0.x = temp1.x; + // mul r1.xyz, r3.xyxw, c27[a0.x].xyyw + temp1.xyz = temp3.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.z, c27[a0.x].x, -r3.y, r1.z + temp1.z = float1(-0.5) * -temp3.y + temp1.z; + // add r1.x, r1.y, r1.x + temp1.x = temp1.y + temp1.x; + // mov r4.xy, c27[a0.x] + temp4.xy = float2(-0.5, -0.5); + // mad r1.yw, r4.xxzy, c38.xxzy, c38.z + temp1.yw = temp4.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r4.xyz, r1.z, c69 + temp4.xyz = temp1.zzz * (View._m01_m11_m21_m31).xyz; + // mad r4.xyz, r1.x, c68, r4 + temp4.xyz = temp1.xxx * (View._m00_m10_m20_m30).xyz + temp4.xyz; + // add r1.x, r2.z, c28.w + temp1.x = temp2.z + float1(-1); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // sge r1.x, -r1.x, r1.x + temp1.x = (-temp1.x >= temp1.x) ? 1 : 0; + // lrp r3.z, r1.x, c29.z, r2.z + temp3.z = lerp(temp2.z, float1(1.0001), temp1.x); + // log r1.x, r3.z + temp1.x = log2(temp3.z); + // mul r1.z, r1.x, c29.w + temp1.z = temp1.x * float1(0.6931472); + // mul r1.x, r0.z, r1.x + temp1.x = temp0.z * temp1.x; + // rcp r1.z, r1.z + temp1.z = 1.0f / temp1.z; + // exp r1.x, r1.x + temp1.x = exp2(temp1.x); + // add r1.x, r1.x, c28.w + temp1.x = temp1.x + float1(-1); + // mul r1.x, r1.z, r1.x + temp1.x = temp1.z * temp1.x; + // mad r1.x, r2.y, r1.x, r2.x + temp1.x = temp2.y * temp1.x + temp2.x; + // mad r2.xyz, r1.x, r4, r0.xyww + temp2.xyz = temp1.xxx * temp4.xyz + temp0.xyw; + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 oPos.x, r2, c61 + o.position.x = dot(temp2, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c62 + o.position.y = dot(temp2, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r2, c64 + temp0.y = dot(temp2, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r2, c63 + temp0.x = dot(temp2, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT3.x, r0.x, r0.w + o.texcoord3 = temp0.x * temp0.w; + // mul r0.xyw, r3.y, c69.xyzz + temp0.xyw = temp3.yyy * (View._m01_m11_m21_m31).xyz; + // mad r0.xyw, -c68.xyzz, r3.x, r0 + temp0.xyw = -(View._m00_m10_m20_m30).xyz * temp3.xxx + temp0.xyw; + // dp3 oT5.x, c6, r0.xyww + o.texcoord5.x = dot(DirectionalLight[0].Direction.xyz, temp0.xyw); + // mul r2.xyz, r3.x, c69 + temp2.xyz = temp3.xxx * (View._m01_m11_m21_m31).xyz; + // mad r2.xyz, c68, r3.y, r2 + temp2.xyz = (View._m00_m10_m20_m30).xyz * temp3.yyy + temp2.xyz; + // dp3 oT5.y, c6, r2 + o.texcoord5.y = dot(DirectionalLight[0].Direction.xyz, temp2.xyz); + // mov r3.xyz, c6 + temp3.xyz = DirectionalLight[0].Direction.xyz; + // dp3 oT5.z, r3, c58 + o.texcoord5.z = dot(temp3.xyz, expr58.xyz); + // dp3 oT6.x, c8, r0.xyww + o.texcoord6.x = dot(DirectionalLight[1].Direction.xyz, temp0.xyw); + // dp3 oT7.x, c10, r0.xyww + o.texcoord7.x = dot(DirectionalLight[2].Direction.xyz, temp0.xyw); + // dp3 oT6.y, c8, r2 + o.texcoord6.y = dot(DirectionalLight[1].Direction.xyz, temp2.xyz); + // dp3 oT7.y, c10, r2 + o.texcoord7.y = dot(DirectionalLight[2].Direction.xyz, temp2.xyz); + // mov r2.xyz, c8 + temp2.xyz = DirectionalLight[1].Direction.xyz; + // dp3 oT6.z, r2, c58 + o.texcoord6.z = dot(temp2.xyz, expr58.xyz); + // mov r2.xyz, c10 + temp2.xyz = DirectionalLight[2].Direction.xyz; + // dp3 oT7.z, r2, c58 + o.texcoord7.z = dot(temp2.xyz, expr58.xyz); + // mad r0.xy, v2.x, c37.x, c37.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xz, r0.xyyw + temp1.xz = frac(temp0.xy); + // add r0.xy, r0, -r1.xzzw + temp0.xy = temp0.xy + -temp1.xz; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.y, c39.y + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.x, r0.y, c11[a0.x].x + temp0.x = temp0.y * float1(0.957897); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, c11[a0.x].x, r0.y, -r0.x + temp0.x = float1(0.957897) * temp0.y + -temp0.x; + // mov r2.xy, c49 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r2.y, r2.x + temp0.y = float1(0.957897) * temp2.y + temp2.x; + // mad r0.x, r0.z, c48.x, r0.x + temp0.x = temp0.z * Draw.SpeedMultiplier.x + temp0.x; + // mul r0.w, r0.x, c59.x + temp0.w = temp0.x * expr59.x; + // abs r1.x, r0.w + temp1.x = abs(temp0.w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // lrp r2.x, r0.w, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp0.w); + // mul r0.w, r2.x, c39.y + temp0.w = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.w, c60.x + temp1.z = temp0.w * expr60.x; + // abs r0.w, r1.z + temp0.w = abs(temp1.z); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r2.x, r1.z, -r1.z + temp2.x = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r3.x, r2.x, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.x); + // mul r1.x, r3.x, c39.x + temp1.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.xzzw + temp2.xy = frac(temp1.xz); + // add r1.xz, r1, -r2.xyyw + temp1.xz = temp1.xz + -temp2.xy; + // add r1.xz, r1.yyww, r1 + temp1.xz = temp1.yw + temp1.xz; + // mul oT0.xy, r1.xzzw, c60.x + o.texcoord = temp1.xzzw * expr60.x; + // add r0.w, r0.x, -c28.w + temp0.w = temp0.x + float1(1); + // frc oT4.z, r0.x + o.texcoord4.z = frac(temp0.x); + // mul r0.x, r0.w, c59.x + temp0.x = temp0.w * expr59.x; + // abs r0.w, r0.x + temp0.w = abs(temp0.x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // lrp r1.x, r0.x, r0.w, -r0.w + temp1.x = lerp(-temp0.w, temp0.w, temp0.x); + // mul r0.x, r1.x, c39.y + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.w, r0.x, c60.x + temp0.w = temp0.x * expr60.x; + // abs r1.x, r0.w + temp1.x = abs(temp0.w); + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // sge r1.z, r0.w, -r0.w + temp1.z = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r2.x, r1.z, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp1.z); + // mul r0.x, r2.x, c39.x + temp0.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.xz, r0.xyww + temp1.xz = frac(temp0.xw); + // add r0.xw, r0, -r1.xyzz + temp0.xw = temp0.xw + -temp1.xz; + // add r0.xw, r1.yyzw, r0 + temp0.xw = temp1.yw + temp0.xw; + // mul oT4.xy, r0.xwzw, c60.x + o.texcoord4.xy = temp0.xw * expr60.xx; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c42 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c43 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c44 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c45 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c46.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c40 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c41 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT5.w, c27.z + o.texcoord5.w = float1(0); + // mov oT6.w, c27.z + o.texcoord6.w = float1(0); + // mov oT7.w, c27.z + o.texcoord7.w = float1(0); + // + + return o; +} + +// _Default_L_PixelShader12 Pixel_2_0 Has PRES False +struct _Default_L_PixelShader12_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 _Default_L_PixelShader12(_Default_L_PixelShader12_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _Default_L_VertexShader13 Vertex_2_0 Has PRES True +struct _Default_L_VertexShader13_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _Default_L_VertexShader13_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +_Default_L_VertexShader13_Output _Default_L_VertexShader13(_Default_L_VertexShader13_Input i) +{ + /* + PRSI + OutputRegisterOffset: 61 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 61 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr61; + float4 expr62; + float4 expr63; + { + // Expression_2_1 + // mul c61.x, c1.x, (30) + expr61.x = Time.x * (30); + // rcp c62.x, c0.y + expr62.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c63.x, c0.x + expr63.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + _Default_L_VertexShader13_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float2 addr0, temp5; + // def c36, 0.1875, 2.0625, 6.1875, 0 + // def c27, -0.5, -0.5, 16, -1 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 0.1591549, 0 + // def c30, -0.5, 0.5, 6.283185, -3.141593 + // def c28, 0.5, -0.5, 1.0001, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c31, 0, 0, 0, 0 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mad r0.xy, v2.x, c36.x, c36.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(2.0625, 6.1875); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c27.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r0.zw, r0.xyxy + temp0.zw = frac(temp0.xy); + // add r0.xy, r0, -r0.zwzw + temp0.xy = temp0.xy + -temp0.zw; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.xyz, c49 + temp0.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mov r0.w, c60.y + temp0.w = Physics.VelocityDampingRange.y; + // mov r1.xyz, c48 + temp1.xyz = Update.Size_Rate_Damping__Min.xyz; + // mov r1.w, c60.x + temp1.w = Physics.VelocityDampingRange.x; + // mad r0, c11[a0.x], r0, r1 + temp0 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp0 + temp1; + // add r1.xy, r0.zwzw, c27.w + temp1.xy = temp0.zw + float2(-1, -1); + // mul r1.xy, r1, r1 + temp1.xy = temp1.xy * temp1.xy; + // sge r1.xy, -r1, r1 + temp1.xy = (-temp1.xy >= temp1.xy) ? 1 : 0; + // lrp r2.xy, r1, c28.z, r0.zwzw + temp2.xy = lerp(temp0.zw, float2(1.0001, 1.0001), temp1.xy); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.x, r0.z, c28.w + temp1.x = temp0.z * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add r1.y, -v1.w, c61.x + temp1.y = -i.texcoord.w + expr61.x; + // mul r0.z, r0.z, r1.y + temp0.z = temp0.z * temp1.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c27.w + temp0.z = temp0.z + float1(-1); + // mul r0.z, r1.x, r0.z + temp0.z = temp1.x * temp0.z; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xzw, v1.xyyz, r0.z, r2.xyyz + temp1.xzw = i.texcoord.xyz * temp0.zzz + temp2.xyz; + // mul r0.z, r1.y, -c27.x + temp0.z = temp1.y * float1(0.5); + // mov r2.xyz, c58 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.z, r2, c59 + temp2.xyz = temp0.zzz * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xzw, r2.xyyz, r1.y, r1 + temp1.xzw = temp2.xyz * temp1.yyy + temp1.xzw; + // add r2.xyz, r1.xzzw, -v0.xyyw + temp2.xyz = temp1.xzz + -i.position.xyy; + // mov r3.xy, c51 + temp3.xy = Update.XYRotation_Rate_Damping__Spread.xy; + // mov r3.zw, c53.xyxy + temp3.zw = Update.ZRotation_Rate_Damping__Spread.xy; + // mov r4.xy, c50 + temp4.xy = Update.XYRotation_Rate_Damping__Min.xy; + // mov r4.zw, c52.xyxy + temp4.zw = Update.ZRotation_Rate_Damping__Min.xy; + // mad r3, c11[a0.y], r3, r4 + temp3 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp3 + temp4; + // mad r3.xy, r3.ywzw, r1.y, r3.xzzw + temp3.xy = temp3.yw * temp1.yy + temp3.xz; + // mad r3.xy, r3, c29.z, c29.x + temp3.xy = temp3.xy * float2(0.15915494, 0.15915494) + float2(0.5, 0.5); + // frc r3.xy, r3 + temp3.xy = frac(temp3.xy); + // mad r3.xy, r3, c30.z, c30.w + temp3.xy = temp3.xy * float2(6.2831855, 6.2831855) + float2(-3.1415927, -3.1415927); + // sincos r4.xy, r3.x, c0, c1 + temp4.xy = float2(cos(temp3.x), sin(temp3.x)); + // sincos r5.xy, r3.y, c0, c1 + temp5.xy = float2(cos(temp3.y), sin(temp3.y)); + // mul r2.yzw, r2.xxyz, r4.xxyx + temp2.yzw = temp2.xyz * temp4.xyx; + // mad r2.w, r2.x, -r4.y, r2.w + temp2.w = temp2.x * -temp4.y + temp2.w; + // add r2.x, r2.z, r2.y + temp2.x = temp2.z + temp2.y; + // add r1.xz, r2.xyww, v0.xyyw + temp1.xz = temp2.xw + i.position.xy; + // slt r0.z, v0.w, r1.y + temp0.z = (i.position.w < temp1.y) ? 1 : 0; + // mad r0.z, r0.z, -v2.y, v2.y + temp0.z = temp0.z * -i.texcoord1.y + i.texcoord1.y; + // frc r2.x, r0.z + temp2.x = frac(temp0.z); + // add r0.z, r0.z, -r2.x + temp0.z = temp0.z + -temp2.x; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.xyz, r5.xyxw, c27[a0.x].xyyw + temp2.xyz = temp5.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c27[a0.x].x, -r5.y, r2.z + temp0.z = float1(-0.5) * -temp5.y + temp2.z; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c37.xyxy, c37.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r2.x, r2.y, r2.x + temp2.x = temp2.y + temp2.x; + // mul r3.xyz, r0.z, c65 + temp3.xyz = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r3.xyz, r2.x, c64, r3 + temp3.xyz = temp2.xxx * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mul r0.z, r0.w, c28.w + temp0.z = temp0.w * float1(0.6931472); + // mul r0.w, r0.w, r1.y + temp0.w = temp0.w * temp1.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c27.w + temp0.w = temp0.w + float1(-1); + // mul r0.z, r0.z, r0.w + temp0.z = temp0.z * temp0.w; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r0.xyz, r0.x, r3, r1.xzww + temp0.xyz = temp0.xxx * temp3.xyz + temp1.xzw; + // mov r0.w, -c27.w + temp0.w = float1(1); + // dp4 oPos.x, r0, c54 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c55 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c56 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c57 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mul r0.x, r1.y, c47.x + temp0.x = temp1.y * Draw.SpeedMultiplier.x; + // mul r0.x, r0.x, c62.x + temp0.x = temp0.x * expr62.x; + // abs r0.y, r0.x + temp0.y = abs(temp0.x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // lrp r1.x, r0.x, r0.y, -r0.y + temp1.x = lerp(-temp0.y, temp0.y, temp0.x); + // mul r0.x, r1.x, c38.y + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c63.x + temp0.y = temp0.x * expr63.x; + // abs r0.z, r0.y + temp0.z = abs(temp0.y); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // sge r0.w, r0.y, -r0.y + temp0.w = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r1.x, r0.w, r0.z, -r0.z + temp1.x = lerp(-temp0.z, temp0.z, temp0.w); + // mul r0.x, r1.x, c38.x + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r0.zw, r0.xyxy + temp0.zw = frac(temp0.xy); + // add r0.xy, r0, -r0.zwzw + temp0.xy = temp0.xy + -temp0.zw; + // add r0.xy, r2.zwzw, r0 + temp0.xy = temp2.zw + temp0.xy; + // mul oT0.xy, r0, c63.x + o.texcoord = temp0 * expr63.x; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.y, r0.x + temp0.x = temp1.y * temp0.x; + // mov r1, c41 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c42 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c43 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c44 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c45 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c39 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c40 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // add r1, r3, -r4 + temp1 = temp3 + -temp4; + // mad oD0, r0.y, r1, r4 + o.color = temp0.y * temp1 + temp4; + // + + return o; +} + +// Default_M_Expression14 Expression_2_0 Has PRES False +float Default_M_Expression14() +{ + float1 expr0; + // mov c0.x, (0) + expr0.x = (0); + return expr0; +} + +// Default_M_VertexShader15 Vertex_2_0 Has PRES True +struct Default_M_VertexShader15_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader15_Output +{ + float4 position : POSITION; + float texcoord3 : TEXCOORD3; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 texcoord7 : TEXCOORD7; + float2 texcoord : TEXCOORD; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; +}; + +Default_M_VertexShader15_Output Default_M_VertexShader15(Default_M_VertexShader15_Input i) +{ + /* + PRSI + OutputRegisterOffset: 56 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 56 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 58 ConstInput 3 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c56.x, c6.x, (30) + expr56.x = Time.x * (30); + // mul r0.x, c3.z, c4.y + temp0.x = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).y; + // mul r0.y, c3.x, c4.z + temp0.y = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).z; + // mul r0.z, c3.y, c4.x + temp0.z = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).x; + // neg r1.xyz, r0.xyz + temp1.xyz = -temp0.xyz; + // mul r0.x, c3.y, c4.z + temp0.x = (View._m00_m10_m20_m30).y * (View._m01_m11_m21_m31).z; + // mul r0.y, c3.z, c4.x + temp0.y = (View._m00_m10_m20_m30).z * (View._m01_m11_m21_m31).x; + // mul r0.z, c3.x, c4.y + temp0.z = (View._m00_m10_m20_m30).x * (View._m01_m11_m21_m31).y; + // add r2.xyz, r1.xyz, r0.xyz + temp2.xyz = temp1.xyz + temp0.xyz; + // dot r0.xyz, r2.xyz, c0.xyz + temp0.xyz = dot(temp2.xyz, (World._m00_m10_m20_m30).xyz); + // dot r0.yzw, r2.xyz, c1.xyz + temp0.yzw = dot(temp2.xyz, (World._m01_m11_m21_m31).xyz); + // dot r0.zwx, r2.xyz, c2.xyz + temp0.zwx = dot(temp2.xyz, (World._m02_m12_m22_m32).xyz); + // dot r1.xyz, r0.xyz, r0.xyz + temp1.xyz = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r1.x + temp0.w = 1.0f / sqrt(temp1.x); + // mul c58.xyz, r0.w, r0.xyz + expr58.xyz = temp0.w * temp0.xyz; + // rcp c59.x, c5.y + expr59.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c60.x, c5.x + expr60.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + Default_M_VertexShader15_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c38, 1, -1, 0.5, 0 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c67 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c56.x + temp0.z = -i.texcoord.w + expr56.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c65 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c66 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c53 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c52 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c55 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c54 + temp1.xyz = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // mov r2.xyz, c11[a0.x] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c51 + temp3.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c50 + temp2.xyz = temp2.xyz * temp3.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r1.w, r1.z, c28.w + temp1.w = temp1.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r2.w, r1.w, c29.z, r1.z + temp2.w = lerp(temp1.z, float1(1.0001), temp1.w); + // log r1.z, r2.w + temp1.z = log2(temp2.w); + // mul r1.w, r1.z, c29.w + temp1.w = temp1.z * float1(0.6931472); + // mul r1.z, r0.z, r1.z + temp1.z = temp0.z * temp1.z; + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // exp r1.z, r1.z + temp1.z = exp2(temp1.z); + // add r1.z, r1.z, c28.w + temp1.z = temp1.z + float1(-1); + // mul r1.z, r1.w, r1.z + temp1.z = temp1.w * temp1.z; + // mad r1.x, r1.y, r1.z, r1.x + temp1.x = temp1.y * temp1.z + temp1.x; + // mad r1.x, r1.x, c30.z, c30.y + temp1.x = temp1.x * float1(0.15915494) + float1(0.5); + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // mad r1.x, r1.x, c31.z, c31.w + temp1.x = temp1.x * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.x, c0, c1 + temp3.xy = float2(cos(temp1.x), sin(temp1.x)); + // slt r1.x, v0.w, r0.z + temp1.x = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.x, r1.x, -v2.y, v2.y + temp1.x = temp1.x * -i.texcoord1.y + i.texcoord1.y; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.x, r1.x, -r1.y + temp1.x = temp1.x + -temp1.y; + // mova a0.x, r1.x + addr0.x = temp1.x; + // mul r1.xyz, r3.xyxw, c27[a0.x].xyyw + temp1.xyz = temp3.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.z, c27[a0.x].x, -r3.y, r1.z + temp1.z = float1(-0.5) * -temp3.y + temp1.z; + // add r1.x, r1.y, r1.x + temp1.x = temp1.y + temp1.x; + // mov r4.xy, c27[a0.x] + temp4.xy = float2(-0.5, -0.5); + // mad r1.yw, r4.xxzy, c38.xxzy, c38.z + temp1.yw = temp4.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r4.xyz, r1.z, c69 + temp4.xyz = temp1.zzz * (View._m01_m11_m21_m31).xyz; + // mad r4.xyz, r1.x, c68, r4 + temp4.xyz = temp1.xxx * (View._m00_m10_m20_m30).xyz + temp4.xyz; + // add r1.x, r2.z, c28.w + temp1.x = temp2.z + float1(-1); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // sge r1.x, -r1.x, r1.x + temp1.x = (-temp1.x >= temp1.x) ? 1 : 0; + // lrp r3.z, r1.x, c29.z, r2.z + temp3.z = lerp(temp2.z, float1(1.0001), temp1.x); + // log r1.x, r3.z + temp1.x = log2(temp3.z); + // mul r1.z, r1.x, c29.w + temp1.z = temp1.x * float1(0.6931472); + // mul r1.x, r0.z, r1.x + temp1.x = temp0.z * temp1.x; + // rcp r1.z, r1.z + temp1.z = 1.0f / temp1.z; + // exp r1.x, r1.x + temp1.x = exp2(temp1.x); + // add r1.x, r1.x, c28.w + temp1.x = temp1.x + float1(-1); + // mul r1.x, r1.z, r1.x + temp1.x = temp1.z * temp1.x; + // mad r1.x, r2.y, r1.x, r2.x + temp1.x = temp2.y * temp1.x + temp2.x; + // mad r2.xyz, r1.x, r4, r0.xyww + temp2.xyz = temp1.xxx * temp4.xyz + temp0.xyw; + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 oPos.x, r2, c61 + o.position.x = dot(temp2, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c62 + o.position.y = dot(temp2, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r2, c64 + temp0.y = dot(temp2, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r2, c63 + temp0.x = dot(temp2, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT3.x, r0.x, r0.w + o.texcoord3 = temp0.x * temp0.w; + // mul r0.xyw, r3.y, c69.xyzz + temp0.xyw = temp3.yyy * (View._m01_m11_m21_m31).xyz; + // mad r0.xyw, -c68.xyzz, r3.x, r0 + temp0.xyw = -(View._m00_m10_m20_m30).xyz * temp3.xxx + temp0.xyw; + // dp3 oT5.x, c6, r0.xyww + o.texcoord5.x = dot(DirectionalLight[0].Direction.xyz, temp0.xyw); + // mul r2.xyz, r3.x, c69 + temp2.xyz = temp3.xxx * (View._m01_m11_m21_m31).xyz; + // mad r2.xyz, c68, r3.y, r2 + temp2.xyz = (View._m00_m10_m20_m30).xyz * temp3.yyy + temp2.xyz; + // dp3 oT5.y, c6, r2 + o.texcoord5.y = dot(DirectionalLight[0].Direction.xyz, temp2.xyz); + // mov r3.xyz, c6 + temp3.xyz = DirectionalLight[0].Direction.xyz; + // dp3 oT5.z, r3, c58 + o.texcoord5.z = dot(temp3.xyz, expr58.xyz); + // dp3 oT6.x, c8, r0.xyww + o.texcoord6.x = dot(DirectionalLight[1].Direction.xyz, temp0.xyw); + // dp3 oT7.x, c10, r0.xyww + o.texcoord7.x = dot(DirectionalLight[2].Direction.xyz, temp0.xyw); + // dp3 oT6.y, c8, r2 + o.texcoord6.y = dot(DirectionalLight[1].Direction.xyz, temp2.xyz); + // dp3 oT7.y, c10, r2 + o.texcoord7.y = dot(DirectionalLight[2].Direction.xyz, temp2.xyz); + // mov r2.xyz, c8 + temp2.xyz = DirectionalLight[1].Direction.xyz; + // dp3 oT6.z, r2, c58 + o.texcoord6.z = dot(temp2.xyz, expr58.xyz); + // mov r2.xyz, c10 + temp2.xyz = DirectionalLight[2].Direction.xyz; + // dp3 oT7.z, r2, c58 + o.texcoord7.z = dot(temp2.xyz, expr58.xyz); + // mad r0.xy, v2.x, c37.x, c37.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xz, r0.xyyw + temp1.xz = frac(temp0.xy); + // add r0.xy, r0, -r1.xzzw + temp0.xy = temp0.xy + -temp1.xz; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.y, c39.y + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.x, r0.y, c11[a0.x].x + temp0.x = temp0.y * float1(0.957897); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, c11[a0.x].x, r0.y, -r0.x + temp0.x = float1(0.957897) * temp0.y + -temp0.x; + // mov r2.xy, c49 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r2.y, r2.x + temp0.y = float1(0.957897) * temp2.y + temp2.x; + // mad r0.x, r0.z, c48.x, r0.x + temp0.x = temp0.z * Draw.SpeedMultiplier.x + temp0.x; + // mul r0.w, r0.x, c59.x + temp0.w = temp0.x * expr59.x; + // abs r1.x, r0.w + temp1.x = abs(temp0.w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // lrp r2.x, r0.w, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp0.w); + // mul r0.w, r2.x, c39.y + temp0.w = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.w, c60.x + temp1.z = temp0.w * expr60.x; + // abs r0.w, r1.z + temp0.w = abs(temp1.z); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r2.x, r1.z, -r1.z + temp2.x = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r3.x, r2.x, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.x); + // mul r1.x, r3.x, c39.x + temp1.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.xzzw + temp2.xy = frac(temp1.xz); + // add r1.xz, r1, -r2.xyyw + temp1.xz = temp1.xz + -temp2.xy; + // add r1.xz, r1.yyww, r1 + temp1.xz = temp1.yw + temp1.xz; + // mul oT0.xy, r1.xzzw, c60.x + o.texcoord = temp1.xzzw * expr60.x; + // add r0.w, r0.x, -c28.w + temp0.w = temp0.x + float1(1); + // frc oT4.z, r0.x + o.texcoord4.z = frac(temp0.x); + // mul r0.x, r0.w, c59.x + temp0.x = temp0.w * expr59.x; + // abs r0.w, r0.x + temp0.w = abs(temp0.x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // lrp r1.x, r0.x, r0.w, -r0.w + temp1.x = lerp(-temp0.w, temp0.w, temp0.x); + // mul r0.x, r1.x, c39.y + temp0.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.w, r0.x, c60.x + temp0.w = temp0.x * expr60.x; + // abs r1.x, r0.w + temp1.x = abs(temp0.w); + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // sge r1.z, r0.w, -r0.w + temp1.z = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r2.x, r1.z, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp1.z); + // mul r0.x, r2.x, c39.x + temp0.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.xz, r0.xyww + temp1.xz = frac(temp0.xw); + // add r0.xw, r0, -r1.xyzz + temp0.xw = temp0.xw + -temp1.xz; + // add r0.xw, r1.yyzw, r0 + temp0.xw = temp1.yw + temp0.xw; + // mul oT4.xy, r0.xwzw, c60.x + o.texcoord4.xy = temp0.xw * expr60.xx; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c42 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c43 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c44 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c45 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c46.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c40 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c41 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT5.w, c27.z + o.texcoord5.w = float1(0); + // mov oT6.w, c27.z + o.texcoord6.w = float1(0); + // mov oT7.w, c27.z + o.texcoord7.w = float1(0); + // + + return o; +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader15(); // 33 + PixelShader = PS_Array[Default_M_Expression14()]; // 34 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 _Default_L_VertexShader13(); // 36 + PixelShader = compile ps_2_0 _Default_L_PixelShader12(); // 37 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader11(); // 45 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression10()]; // 46 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/gpuparticleoceandisplacement.fx b/gpuparticleoceandisplacement.fx new file mode 100644 index 0000000..2eea9f3 --- /dev/null +++ b/gpuparticleoceandisplacement.fx @@ -0,0 +1,477 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_3_0, c39) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_3_0, c60) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_3_0, c50) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +int _SasGlobal : SasGlobal ; +texture NormalTexture ; // 10 +sampler2D NormalTextureSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 13 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float4 ParticleMiscValues : register(vs_3_0, c66) = { 1, 1, 1, 1 }; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_3_0, c56); +float Time : Time; +// Default_M_PixelShader1 Pixel_3_0 Has PRES False +struct Default_M_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1 v1.w + // dcl_2d s0 + // texld r0, v0, s0 + temp0 = tex2D(NormalTextureSampler, i.texcoord.xy); + // mul r1, c0.xxxy, v1.w + temp1 = float4(1, 1, 1, 0) * i.texcoord1.w; + // mul oC0, r0, r1 + out_color = temp0 * temp1; + // + + return out_color; +} + +// Default_M_VertexShader2 Vertex_3_0 Has PRES True +struct Default_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 63 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 63 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr63; + float4 expr64; + float4 expr65; + { + // Expression_2_1 + // mul c63.x, c1.x, (30) + expr63.x = Time.x * (30); + // rcp c64.x, c0.y + expr64.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // rcp c65.x, c0.x + expr65.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + } + + Default_M_VertexShader2_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + // def c28, 0.5, -0.5, 16, -1 + // def c36, 1.375, 2.0625, 8.9375, 6.1875 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c37, 0.1875, 4.8125, 2.75, 0 + // def c38, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_texcoord1 o2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(1.375, 2.0625, 8.9375, 6.1875); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xyz, c11[a0.x] + temp0.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r1.xyz, c55 + temp1.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r0.xyz, r0, r1, c54 + temp0.xyz = temp0.xyz * temp1.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r0.w, r0.z, c28.w + temp0.w = temp0.z + float1(-1); + // sge r0.w, -r0_abs.w, r0_abs.w + temp0.w = (r0.w == 0) ? 1 : 0; + // lrp r1.x, r0.w, c29.z, r0.z + temp1.x = lerp(temp0.z, float1(1.0001), temp0.w); + // log r0.z, r1.x + temp0.z = log2(temp1.x); + // mul r0.w, r0.z, c29.w + temp0.w = temp0.z * float1(0.6931472); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // add r1.x, c63.x, -v1.w + temp1.x = expr63.x + -i.texcoord.w; + // mul r0.z, r0.z, r1.x + temp0.z = temp0.z * temp1.x; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c28.w + temp0.z = temp0.z + float1(-1); + // mul r0.z, r0.w, r0.z + temp0.z = temp0.w * temp0.z; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r0.x, r0.x, c30.z, c30.y + temp0.x = temp0.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c31.z, c31.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r0.x + temp2.xy = float2(cos(temp0.x), sin(temp0.x)); + // mul r0.xyz, r2.xyxw, v1.xyyw + temp0.xyz = temp2.xyx * i.texcoord.xyy; + // mad r0.w, v1.x, -r2.y, r0.z + temp0.w = i.texcoord.x * -temp2.y + temp0.z; + // add r0.z, r0.y, r0.x + temp0.z = temp0.y + temp0.x; + // mov r0.xy, c62 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.z].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // sge r0.y, -r0_abs.y, r0_abs.y + temp0.y = (r0.y == 0) ? 1 : 0; + // lrp r1.y, r0.y, c29.z, r0.x + temp1.y = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.y + temp0.x = log2(temp1.y); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // mul r0.x, r1.x, r0.x + temp0.x = temp1.x * temp0.x; + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mad r1.yzw, r0.xzww, r0.x, v0.xxyy + temp1.yzw = temp0.zww * temp0.xxx + i.position.xyy; + // mul r0.x, r1.x, -c27.x + temp0.x = temp1.x * float1(0.5); + // mov r2.xy, c60 + temp2.xy = Physics.Gravity.xy; + // mad r2.xyz, r0.x, r2.xyyw, c61.xyyw + temp2.xyz = temp0.xxx * temp2.xyy + Physics.DriftVelocity.xyy; + // mad r1.yzw, r2.xxyz, r1.x, r1 + temp1.yzw = temp2.xyz * temp1.xxx + temp1.yzw; + // add r1.yzw, r1, -v0.xxyy + temp1.yzw = temp1.yzw + -i.position.xyy; + // mov r2.xyz, c11[a0.w] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c53 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c52 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // mov r3.xyz, c11[a0.y] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c51 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c50 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r0.x, r2.z, c28.w + temp0.x = temp2.z + float1(-1); + // sge r0.x, -r0_abs.x, r0_abs.x + temp0.x = (r0.x == 0) ? 1 : 0; + // lrp r3.w, r0.x, c29.z, r2.z + temp3.w = lerp(temp2.z, float1(1.0001), temp0.x); + // log r0.x, r3.w + temp0.x = log2(temp3.w); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // mul r0.x, r1.x, r0.x + temp0.x = temp1.x * temp0.x; + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mad r0.x, r2.y, r0.x, r2.x + temp0.x = temp2.y * temp0.x + temp2.x; + // mad r0.x, r0.x, c30.z, c30.y + temp0.x = temp0.x * float1(0.15915494) + float1(0.5); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, r0.x, c31.z, c31.w + temp0.x = temp0.x * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r0.x + temp2.xy = float2(cos(temp0.x), sin(temp0.x)); + // mul r2.xzw, r1.yyzw, r2.xyyx + temp2.xzw = temp1.yzw * temp2.xyx; + // mad r0.y, r1.y, -r2.y, r2.w + temp0.y = temp1.y * -temp2.y + temp2.w; + // add r0.x, r2.z, r2.x + temp0.x = temp2.z + temp2.x; + // add r0.xy, r0, v0 + temp0.xy = temp0.xy + i.position.xy; + // mul r1.yz, r0.xzww, r0.xzww + temp1.yz = temp0.zw * temp0.zw; + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // rsq r1.y, r1.y + temp1.y = 1 / sqrt(temp1.y); + // mul r1.yz, r0.xzww, r1.y + temp1.yz = temp0.zw * temp1.yy; + // mov r1.w, -r1.z + temp1.w = -temp1.z; + // slt r0.z, v0.w, r1.x + temp0.z = (i.position.w < temp1.x) ? 1 : 0; + // mad r0.z, r0.z, -v2.y, v2.y + temp0.z = temp0.z * -i.texcoord1.y + i.texcoord1.y; + // frc r0.w, r0.z + temp0.w = frac(temp0.z); + // add r0.z, r0.z, -r0.w + temp0.z = temp0.z + -temp0.w; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2, r1.wyyz, c27[a0.x].xxyy + temp2 = temp1.wyyz * float4(-0.5, -0.5, -0.5, -0.5); + // mov r4.xy, c27[a0.x] + temp4.xy = float2(-0.5, -0.5); + // mad r0.zw, r4.xyxy, c38.xyxy, c38.z + temp0.zw = temp4.xy * float2(1, -1) + float2(0.5, 0.5); + // mad r1.yz, r2.xxyw, c66.x, r2.xzww + temp1.yz = temp2.xy * ParticleMiscValues.xx + temp2.zw; + // add r1.w, r3.z, c28.w + temp1.w = temp3.z + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r2.x, r1.w, c29.z, r3.z + temp2.x = lerp(temp3.z, float1(1.0001), temp1.w); + // log r1.w, r2.x + temp1.w = log2(temp2.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r1.x, r1.w + temp1.w = temp1.x * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.w, r3.y, r1.w, r3.x + temp1.w = temp3.y * temp1.w + temp3.x; + // mad r1.yz, r1.w, r1, r0.xxyw + temp1.yz = temp1.ww * temp1.yz + temp0.xy; + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp3 o0.x, r1.yzww, c56.xyww + o.position.x = dot(temp1.yzw, (WorldViewProjection._m00_m10_m20_m30).xyw); + // dp3 o0.y, r1.yzww, c57.xyww + o.position.y = dot(temp1.yzw, (WorldViewProjection._m01_m11_m21_m31).xyw); + // dp3 o0.z, r1.yzww, c58.xyww + o.position.z = dot(temp1.yzw, (WorldViewProjection._m02_m12_m22_m32).xyw); + // dp3 o0.w, r1.yzww, c59.xyww + o.position.w = dot(temp1.yzw, (WorldViewProjection._m03_m13_m23_m33).xyw); + // mad r0.xy, v2.x, c37.x, c37.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.y, c39.y + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.x, r0.y, c11[a0.x].x + temp0.x = temp0.y * float1(0.957897); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mad r0.x, c11[a0.x].x, r0.y, -r0.x + temp0.x = float1(0.957897) * temp0.y + -temp0.x; + // mov r2.xy, c49 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r2.y, r2.x + temp0.y = float1(0.957897) * temp2.y + temp2.x; + // mad r0.x, r1.x, c48.x, r0.x + temp0.x = temp1.x * Draw.SpeedMultiplier.x + temp0.x; + // mul r0.x, r0.x, c64.x + temp0.x = temp0.x * expr64.x; + // frc r1.y, r0_abs.x + temp1.y = frac(abs(temp0).x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // lrp r2.x, r0.x, r1.y, -r1.y + temp2.x = lerp(-temp1.y, temp1.y, temp0.x); + // mul r0.x, r2.x, c39.y + temp0.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.x, c65.x + temp1.z = temp0.x * expr65.x; + // frc r0.x, r1_abs.z + temp0.x = frac(abs(temp1).z); + // sge r1.w, r1.z, -r1.z + temp1.w = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r2.x, r1.w, r0.x, -r0.x + temp2.x = lerp(-temp0.x, temp0.x, temp1.w); + // mul r1.y, r2.x, c39.x + temp1.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.yzzw + temp2.xy = frac(temp1.yz); + // add r1.yz, r1, -r2.xxyw + temp1.yz = temp1.yz + -temp2.xy; + // add r0.xz, r0.zyww, r1.yyzw + temp0.xz = temp0.zw + temp1.yz; + // mul o1.xy, r0.xzzw, c65.x + o.texcoord = temp0.xzzw * expr65.x; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.x, r0.x + temp0.x = temp1.x * temp0.x; + // mov r1, c42 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c43 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c44 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c45 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c46.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c40 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c41 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul o2, r0.y, r1 + o.texcoord1 = temp0.y * temp1; + // + + return o; +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_3_0 Default_M_VertexShader2(); // 19 + PixelShader = compile ps_3_0 Default_M_PixelShader1(); // 20 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique Default_L +{ +} + diff --git a/gpuparticleperpendicularbottom.fx b/gpuparticleperpendicularbottom.fx new file mode 100644 index 0000000..e646ff4 --- /dev/null +++ b/gpuparticleperpendicularbottom.fx @@ -0,0 +1,4673 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_3_0, c63) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_3_0, c128) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c65) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTextureSampler ; // 8 +sampler2D ParticleTextureSamplerSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 15 +sampler2D NextFrameTextureSamplerSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture DepthTexture ; // 22 +sampler2D DepthTextureSampler : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 24 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +bool ShouldDrawParticleSoft ; +column_major float4x4 WorldView : WorldView : register(vs_3_0, c85); +column_major float4x4 Projection : Projection : register(vs_3_0, c124); +column_major float4x4 WorldViewProjection : WorldViewProjection; +column_major float4x3 View : View : register(vs_2_0, c78); +row_major float4x4 ProjectionI : ProjectionInverse; +float Time : Time; +struct +{ + float3 StartSizeMinimums; + float3 StartSizeSpreads; + float3 SizeRateMinimums; + float3 SizeRateSpreads; + float3 SizeDampingMinimums; + float3 SizeDampingSpreads; + float3 AngleMinimums; + float3 AngleSpreads; + float3 AngularRateMinimums; + float3 AngularRateSpreads; + float2 AngleDampingMin_AngleDampingSpread; + int RotationType; +} GeometryUpdate : register(vs_2_0, c68) : register(vs_3_0, c74) ; +// VS_Array_H_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_H_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_H_Shader_0_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +VS_Array_H_Shader_0_Output VS_Array_H_Shader_0(VS_Array_H_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 44 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 44 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 51 ConstInput 2 + 1 - ConstOutput: 54 ConstInput 1 + 2 - ConstOutput: 56 ConstInput 1 + 3 - ConstOutput: 60 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + float4 expr61; + float4 expr62; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c44.x, c1.x, (30) + expr44.x = Time.x * (30); + // add c45.x, c0.x, (-1) + expr45.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c61.x, c0.y + expr61.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c51.x, r1.x + expr51.x = temp1.x; + // mov c54.x, r1.x + expr54.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c52.x, r0.x + expr52.x = temp0.x; + // mov c56.x, r0.x + expr56.x = temp0.x; + // mov c60.x, r0.x + expr60.x = temp0.x; + // mov c62.x, r0.x + expr62.x = temp0.x; + } + + VS_Array_H_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 addr0; + // def c43, 0.1875, 8.9375, 2.0625, 2.75 + // def c27, 1, 0.5, 0, 16 + // def c30, 0, 0.5, 0, 0.6666667 + // def c36, 1, 0.1875, 1.375, 1 + // def c37, 1, 0.1875, 4.8125, 0 + // def c28, 1, -0.5, 0, 1.0001 + // def c29, 0, -0.5, 0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c31, 1, 0, 0.5, 0 + // def c32, 1, 0, -0.5, 0 + // def c33, 0, 0, -0.5, 0 + // def c34, 0, 0, 0.5, 0 + // def c35, 0, 0, 0, 1 + // def c38, 0, 0, 0, 0 + // def c39, 0, 0, 0, 1 + // def c40, 1, 0, 0, 1 + // def c41, 1, 0, 0, 0 + // def c42, 0, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // add r0.x, c44.x, -v1.w + temp0.x = expr44.x + -i.texcoord.w; + // mad r0.yzw, v2.x, c43.x, c43 + temp0.yzw = i.texcoord1.xxx * float3(0.1875, 0.1875, 0.1875) + float3(8.9375, 2.0625, 2.75); + // frc r0.yzw, r0 + temp0.yzw = frac(temp0.yzw); + // mul r0.yzw, r0, c27.w + temp0.yzw = temp0.yzw * float3(16, 16, 16); + // frc r1.xyz, r0.yzww + temp1.xyz = frac(temp0.yzw); + // add r0.yzw, r0, -r1.xxyz + temp0.yzw = temp0.yzw + -temp1.xyz; + // mova a0.xyz, r0.yzww + addr0.xyz = temp0.yzw; + // mov r1.xy, c126 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r0.y, c11[a0.x].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // add r0.z, r0.y, -c27.x + temp0.z = temp0.y + float1(-1); + // sge r0.z, -r0_abs.z, r0_abs.z + temp0.z = (r0.z == 0) ? 1 : 0; + // lrp r1.x, r0.z, c28.w, r0.y + temp1.x = lerp(temp0.y, float1(1.0001), temp0.z); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // mul r0.z, r0.x, r0.y + temp0.z = temp0.x * temp0.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, -c27.x + temp0.z = temp0.z + float1(-1); + // mul r0.y, r0.y, c29.w + temp0.y = temp0.y * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mul r0.z, r0.x, c27.y + temp0.z = temp0.x * float1(0.5); + // mov r1.xyz, c124 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.z, r1, c125 + temp1.xyz = temp0.zzz * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mad r0.yzw, v1.xxyz, r0.y, r1.xxyz + temp0.yzw = i.texcoord.xyz * temp0.yyy + temp1.xyz; + // add r0.yzw, r0, v0.xxyz + temp0.yzw = temp0.yzw + i.position.xyz; + // mov r1.xyz, c11[a0.y] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c75 + temp2.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r2.xyz, r1, r2, c74 + temp2.xyz = temp1.xyz * temp2.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r3.xyz, c77 + temp3.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r3.xyz, r1, r3, c76 + temp3.xyz = temp1.xyz * temp3.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mov r4.xyz, c79 + temp4.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r1.xyz, r1, r4, c78 + temp1.xyz = temp1.xyz * temp4.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r4.xyz, r1, -c27.x + temp4.xyz = temp1.xyz + float3(-1, -1, -1); + // sge r4.xyz, -r4_abs, r4_abs + temp4.xyz = (r4.xyz == 0) ? 1 : 0; + // lrp r5.xyz, r4, c28.w, r1 + temp5.xyz = lerp(temp1.xyz, float3(1.0001, 1.0001, 1.0001), temp4.xyz); + // log r1.x, r5.x + temp1.x = log2(temp5.x); + // log r1.y, r5.y + temp1.y = log2(temp5.y); + // log r1.z, r5.z + temp1.z = log2(temp5.z); + // mul r4.xyz, r0.x, r1 + temp4.xyz = temp0.xxx * temp1.xyz; + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // add r4.xyz, r5, -c27.x + temp4.xyz = temp5.xyz + float3(-1, -1, -1); + // mul r1.xyz, r1, c29.w + temp1.xyz = temp1.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r5.x, r1.x + temp5.x = 1.0f / temp1.x; + // rcp r5.y, r1.y + temp5.y = 1.0f / temp1.y; + // rcp r5.z, r1.z + temp5.z = 1.0f / temp1.z; + // mul r1.xyz, r4, r5 + temp1.xyz = temp4.xyz * temp5.xyz; + // mad r1.xyz, r3, r1, r2 + temp1.xyz = temp3.xyz * temp1.xyz + temp2.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mad r2.xyz, c27[a0.x], r1, r0.yzww + temp2.xyz = float3(1, 0.5, 0) * temp1.xyz + temp0.yzw; + // mul r0.y, r1.x, c30.w + temp0.y = temp1.x * float1(0.6666667); + // mov r2.w, c27.x + temp2.w = float1(1); + // dp4 r1.x, r2, c80 + temp1.x = dot(temp2, (WorldView._m00_m10_m20_m30)); + // dp4 r1.y, r2, c81 + temp1.y = dot(temp2, (WorldView._m01_m11_m21_m31)); + // dp4 r1.z, r2, c82 + temp1.z = dot(temp2, (WorldView._m02_m12_m22_m32)); + // dp4 r1.w, r2, c83 + temp1.w = dot(temp2, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r1.z, r0.y + o.texcoord5.x = temp1.z * temp0.y; + // dp4 r2.x, r1, c84 + temp2.x = dot(temp1, (Projection._m00_m10_m20_m30)); + // dp4 r2.y, r1, c85 + temp2.y = dot(temp1, (Projection._m01_m11_m21_m31)); + // dp4 r2.z, r1, c86 + temp2.z = dot(temp1, (Projection._m02_m12_m22_m32)); + // dp4 r2.w, r1, c87 + temp2.w = dot(temp1, (Projection._m03_m13_m23_m33)); + // rcp r0.z, r2.w + temp0.z = 1.0f / temp2.w; + // mul o4.x, r2.z, r0.z + o.texcoord2 = temp2.z * temp0.z; + // mul r0.z, r0.x, c72.x + temp0.z = temp0.x * Draw.SpeedMultiplier.x; + // min r1.y, r0.z, c45.x + temp1.y = min(temp0.z, expr45.x); + // mov r3.x, c27.x + temp3.x = float1(1); + // mad r0.w, r0.x, c72.x, r3.x + temp0.w = temp0.x * Draw.SpeedMultiplier.x + temp3.x; + // min r1.x, r0.w, c45.x + temp1.x = min(temp0.w, expr45.x); + // if b0 + if (Error ConstBool0Error) { + // frc r3.xy, r1.yxzw + temp3.xy = frac(temp1.yx); + // add r4.xz, r1.yyxw, -r3.xyyw + temp4.xz = temp1.yx + -temp3.xy; + // mov r4.y, c51.x + temp4.y = expr51.x; + // add r3.yz, r4.xxyw, c34[a0.x].xxww + temp3.yz = temp4.xy + float2(0, 0); + // mul o1.xy, r3.yzzw, c52.x + o.texcoord = temp3.yzzw * expr52.x; + // mov r4.w, c54.x + temp4.w = expr54.x; + // add r3.yz, r4.xzww, c34[a0.x].xxww + temp3.yz = temp4.zw + float2(0, 0); + // mul o5.xy, r3.yzzw, c52.x + o.texcoord3.xy = temp3.yz * expr52.xx; + // mov o5.z, r3.x + o.texcoord3.z = temp3.x; + // else + } else { + // mad r3.x, v2.x, c36.y, c36.z + temp3.x = i.texcoord1.x * float1(0.1875) + float1(1.375); + // frc r3.x, r3.x + temp3.x = frac(temp3.x); + // mul r3.x, r3.x, c27.w + temp3.x = temp3.x * float1(16); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.x, r3.x, -r3.y + temp3.x = temp3.x + -temp3.y; + // mova a0.y, r3.x + addr0.y = temp3.x; + // mov r3.x, c63.x + temp3.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r3.y, r3.x, c11[a0.y].x + temp3.y = temp3.x * float1(0.957897); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.w, r3.y, -r3.z + temp3.w = temp3.y + -temp3.z; + // slt r3.y, r3.y, -r3.y + temp3.y = (temp3.y < -temp3.y) ? 1 : 0; + // slt r3.z, -r3.z, r3.z + temp3.z = (-temp3.z < temp3.z) ? 1 : 0; + // mad r1.w, r3.y, r3.z, r3.w + temp1.w = temp3.y * temp3.z + temp3.w; + // if b1 + if (Error ConstBool1Error) { + // mad r3.y, v2.x, c37.y, c37.z + temp3.y = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r3.y, r3.y + temp3.y = frac(temp3.y); + // mul r3.y, r3.y, c27.w + temp3.y = temp3.y * float1(16); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.y, r3.y, -r3.z + temp3.y = temp3.y + -temp3.z; + // mova a0.y, r3.y + addr0.y = temp3.y; + // mul r3.x, r3.x, c11[a0.y].x + temp3.x = temp3.x * float1(0.957897); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.z, r3.x, -r3.y + temp3.z = temp3.x + -temp3.y; + // slt r3.x, r3.x, -r3.x + temp3.x = (temp3.x < -temp3.x) ? 1 : 0; + // slt r3.y, -r3.y, r3.y + temp3.y = (-temp3.y < temp3.y) ? 1 : 0; + // mad r1.z, r3.x, r3.y, r3.z + temp1.z = temp3.x * temp3.y + temp3.z; + // add r3.xy, r1.zwzw, c34[a0.x].xwzw + temp3.xy = temp1.zw + float2(0, 0); + // mul r3.xy, r3, c56.x + temp3.xy = temp3.xy * expr56.xx; + // mov o5.z, c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r3 + o.texcoord3.xy = temp3.xy; + // mov o1.xy, r3 + o.texcoord = temp3; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r3.z, r1.y + temp3.z = frac(temp1.y); + // mov r3.w, c27.z + temp3.w = float1(0); + // add r1.yz, r1.xyww, -r3.xzww + temp1.yz = temp1.yw + -temp3.zw; + // add r1.yz, r1, c34[a0.x].xxww + temp1.yz = temp1.yz + float2(0, 0); + // mul o1.xy, r1.yzzw, c60.x + o.texcoord = temp1.yzzw * expr60.x; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // mov r1.z, c27.z + temp1.z = float1(0); + // add r1.xy, r1.xwzw, -r1.yzzw + temp1.xy = temp1.xw + -temp1.yz; + // add r1.xy, r1, c34[a0.x].xwzw + temp1.xy = temp1.xy + float2(0, 0); + // mul r3.xy, r1, c60.x + temp3.xy = temp1.xy * expr60.xx; + // mov o5.xyz, r3 + o.texcoord3 = temp3; + // else + } else { + // mul r1.x, r0.z, c61.x + temp1.x = temp0.z * expr61.x; + // frc r1.y, r1_abs.x + temp1.y = frac(abs(temp1).x); + // sge r1.x, r1.x, -r1.x + temp1.x = (temp1.x >= -temp1.x) ? 1 : 0; + // lrp r3.x, r1.x, r1.y, -r1.y + temp3.x = lerp(-temp1.y, temp1.y, temp1.x); + // mul r1.x, r3.x, c63.y + temp1.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.y, r1.x, c62.x + temp1.y = temp1.x * expr62.x; + // frc r1.z, r1_abs.y + temp1.z = frac(abs(temp1).y); + // sge r1.w, r1.y, -r1.y + temp1.w = (temp1.y >= -temp1.y) ? 1 : 0; + // lrp r3.x, r1.w, r1.z, -r1.z + temp3.x = lerp(-temp1.z, temp1.z, temp1.w); + // mul r1.x, r3.x, c63.x + temp1.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.zw, r1.xyxy + temp1.zw = frac(temp1.xy); + // add r1.xy, r1, -r1.zwzw + temp1.xy = temp1.xy + -temp1.zw; + // add r1.xy, r1, c34[a0.x].xwzw + temp1.xy = temp1.xy + float2(0, 0); + // mul o1.xy, r1, c62.x + o.texcoord = temp1 * expr62.x; + // mul r0.w, r0.w, c61.x + temp0.w = temp0.w * expr61.x; + // frc r1.x, r0_abs.w + temp1.x = frac(abs(temp0).w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r3.x, r0.w, r1.x, -r1.x + temp3.x = lerp(-temp1.x, temp1.x, temp0.w); + // mul r0.w, r3.x, c63.y + temp0.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.y, r0.w, c62.x + temp1.y = temp0.w * expr62.x; + // frc r0.w, r1_abs.y + temp0.w = frac(abs(temp1).y); + // sge r1.z, r1.y, -r1.y + temp1.z = (temp1.y >= -temp1.y) ? 1 : 0; + // lrp r3.x, r1.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp1.z); + // mul r1.x, r3.x, c63.x + temp1.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.zw, r1.xyxy + temp1.zw = frac(temp1.xy); + // add r1.xy, r1, -r1.zwzw + temp1.xy = temp1.xy + -temp1.zw; + // add r1.xy, r1, c34[a0.x].xwzw + temp1.xy = temp1.xy + float2(0, 0); + // mul o5.xy, r1, c62.x + o.texcoord3.xy = temp1.xy * expr62.xx; + // frc o5.z, r0.z + o.texcoord3.z = frac(temp0.z); + // endif + } + // endif + } + // endif + } + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // mov r1, c64 + temp1 = Draw.ColorAnimationFunctions[0]; + // mad r1, r1, r0.x, c65 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[1]; + // slt r0.zw, r0.x, c70.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c66 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.x, c67 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r4, c68 + temp4 = Draw.ColorAnimationFunctions[4]; + // mad r4, r4, r0.x, c69 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[5]; + // lrp r5, r0.w, r3, r4 + temp5 = lerp(temp4, temp3, temp0.w); + // lrp r3, r0.z, r1, r5 + temp3 = lerp(temp5, temp1, temp0.z); + // mov r1.xy, c73 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.z].x, r1.y, r1.x + temp0.x = float1(0.957897) * temp1.y + temp1.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r2 + o.position = temp2; + // mov o3.xyz, c27.x + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r2 + o.texcoord4 = temp2; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +// VS_Array_H_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_H_Shader_1_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_H_Shader_1_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +VS_Array_H_Shader_1_Output VS_Array_H_Shader_1(VS_Array_H_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 44 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 44 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 51 ConstInput 2 + 1 - ConstOutput: 54 ConstInput 1 + 2 - ConstOutput: 56 ConstInput 1 + 3 - ConstOutput: 60 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + float4 expr61; + float4 expr62; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c44.x, c1.x, (30) + expr44.x = Time.x * (30); + // add c45.x, c0.x, (-1) + expr45.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c61.x, c0.y + expr61.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c51.x, r1.x + expr51.x = temp1.x; + // mov c54.x, r1.x + expr54.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c52.x, r0.x + expr52.x = temp0.x; + // mov c56.x, r0.x + expr56.x = temp0.x; + // mov c60.x, r0.x + expr60.x = temp0.x; + // mov c62.x, r0.x + expr62.x = temp0.x; + } + + VS_Array_H_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp7, temp9; + float3 addr0, temp6, temp8, temp10; + // def c43, 0.1875, 8.9375, 2.0625, 2.75 + // def c27, 1, 0.5, 0, 16 + // def c30, 0, 0.5, 0, 0.1591549 + // def c36, 1, 6.283185, -3.141593, 1 + // def c31, 1, 0, 0.5, 0.001 + // def c32, 1, 0, -0.5, 0.6666667 + // def c37, 1, 0.1875, 1.375, 0 + // def c38, 0, 0.1875, 4.8125, 0 + // def c28, 1, -0.5, 0, 1.0001 + // def c29, 0, -0.5, 0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c33, 0, 0, -0.5, 0 + // def c34, 0, 0, 0.5, 0 + // def c35, 0, 0, 0, 1 + // def c39, 0, 0, 0, 1 + // def c40, 1, 0, 0, 1 + // def c41, 1, 0, 0, 0 + // def c42, 0, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // add r0.x, c44.x, -v1.w + temp0.x = expr44.x + -i.texcoord.w; + // mad r0.yzw, v2.x, c43.x, c43 + temp0.yzw = i.texcoord1.xxx * float3(0.1875, 0.1875, 0.1875) + float3(8.9375, 2.0625, 2.75); + // frc r0.yzw, r0 + temp0.yzw = frac(temp0.yzw); + // mul r0.yzw, r0, c27.w + temp0.yzw = temp0.yzw * float3(16, 16, 16); + // frc r1.xyz, r0.yzww + temp1.xyz = frac(temp0.yzw); + // add r0.yzw, r0, -r1.xxyz + temp0.yzw = temp0.yzw + -temp1.xyz; + // mova a0.xyz, r0.yzww + addr0.xyz = temp0.yzw; + // mov r1.xy, c130 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r0.y, c11[a0.x].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // add r0.z, r0.y, -c27.x + temp0.z = temp0.y + float1(-1); + // sge r0.z, -r0_abs.z, r0_abs.z + temp0.z = (r0.z == 0) ? 1 : 0; + // lrp r1.x, r0.z, c28.w, r0.y + temp1.x = lerp(temp0.y, float1(1.0001), temp0.z); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // mul r0.z, r0.x, r0.y + temp0.z = temp0.x * temp0.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, -c27.x + temp0.z = temp0.z + float1(-1); + // mul r0.y, r0.y, c29.w + temp0.y = temp0.y * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mul r0.z, r0.x, c27.y + temp0.z = temp0.x * float1(0.5); + // mov r1.xyz, c128 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.z, r1, c129 + temp1.xyz = temp0.zzz * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mad r0.yzw, v1.xxyz, r0.y, r1.xxyz + temp0.yzw = i.texcoord.xyz * temp0.yyy + temp1.xyz; + // add r1.xyz, r0.yzww, v0 + temp1.xyz = temp0.yzw + i.position.xyz; + // mov r2.xyz, c11[a0.y] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c75 + temp3.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r3.xyz, r2, r3, c74 + temp3.xyz = temp2.xyz * temp3.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r4.xyz, c77 + temp4.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r4.xyz, r2, r4, c76 + temp4.xyz = temp2.xyz * temp4.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mov r5.xyz, c79 + temp5.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r5.xyz, r2, r5, c78 + temp5.xyz = temp2.xyz * temp5.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r6.xyz, r5, -c27.x + temp6.xyz = temp5.xyz + float3(-1, -1, -1); + // sge r6.xyz, -r6_abs, r6_abs + temp6.xyz = (r6.xyz == 0) ? 1 : 0; + // lrp r7.xyz, r6, c28.w, r5 + temp7.xyz = lerp(temp5.xyz, float3(1.0001, 1.0001, 1.0001), temp6.xyz); + // log r5.x, r7.x + temp5.x = log2(temp7.x); + // log r5.y, r7.y + temp5.y = log2(temp7.y); + // log r5.z, r7.z + temp5.z = log2(temp7.z); + // mul r6.xyz, r0.x, r5 + temp6.xyz = temp0.xxx * temp5.xyz; + // exp r7.x, r6.x + temp7.x = exp2(temp6.x); + // exp r7.y, r6.y + temp7.y = exp2(temp6.y); + // exp r7.z, r6.z + temp7.z = exp2(temp6.z); + // add r6.xyz, r7, -c27.x + temp6.xyz = temp7.xyz + float3(-1, -1, -1); + // mul r5.xyz, r5, c29.w + temp5.xyz = temp5.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r7.x, r5.x + temp7.x = 1.0f / temp5.x; + // rcp r7.y, r5.y + temp7.y = 1.0f / temp5.y; + // rcp r7.z, r5.z + temp7.z = 1.0f / temp5.z; + // mul r5.xyz, r6, r7 + temp5.xyz = temp6.xyz * temp7.xyz; + // mad r3.xyz, r4, r5, r3 + temp3.xyz = temp4.xyz * temp5.xyz + temp3.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mul r3.yzw, r3.xxyz, c27[a0.x].xxyz + temp3.yzw = temp3.xyz * float3(1, 0.5, 0); + // mov r4.xyz, c81 + temp4.xyz = GeometryUpdate.AngleSpreads.xyz; + // mad r4.xyz, r2, r4, c80 + temp4.xyz = temp2.xyz * temp4.xyz + GeometryUpdate.AngleMinimums.xyz; + // mov r5.xyz, c83 + temp5.xyz = GeometryUpdate.AngularRateSpreads.xyz; + // mad r2.yzw, r2.xxyz, r5.xxyz, c82.xxyz + temp2.yzw = temp2.xyz * temp5.xyz + GeometryUpdate.AngularRateMinimums.xyz; + // mad r1.w, r2.x, c84.y, c84.x + temp1.w = temp2.x * GeometryUpdate.AngleDampingMin_AngleDampingSpread.y + GeometryUpdate.AngleDampingMin_AngleDampingSpread.x; + // add r2.x, r1.w, -c27.x + temp2.x = temp1.w + float1(-1); + // sge r2.x, -r2_abs.x, r2_abs.x + temp2.x = (r2.x == 0) ? 1 : 0; + // lrp r4.w, r2.x, c28.w, r1.w + temp4.w = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r4.w + temp1.w = log2(temp4.w); + // mul r2.x, r0.x, r1.w + temp2.x = temp0.x * temp1.w; + // exp r2.x, r2.x + temp2.x = exp2(temp2.x); + // add r2.x, r2.x, -c27.x + temp2.x = temp2.x + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r2.xyz, r2.yzww, r1.w, r4 + temp2.xyz = temp2.yzw * temp1.www + temp4.xyz; + // mad r2.xyz, r2, c30.w, c30.y + temp2.xyz = temp2.xyz * float3(0.15915494, 0.15915494, 0.15915494) + float3(0.5, 0.5, 0.5); + // frc r2.xyz, r2 + temp2.xyz = frac(temp2.xyz); + // mad r2.xyz, r2, c36.y, c36.z + temp2.xyz = temp2.xyz * float3(6.2831855, 6.2831855, 6.2831855) + float3(-3.1415927, -3.1415927, -3.1415927); + // sincos r4.xy, r2.x + temp4.xy = float2(cos(temp2.x), sin(temp2.x)); + // sincos r5.xy, r2.y + temp5.xy = float2(cos(temp2.y), sin(temp2.y)); + // sincos r6.xy, r2.z + temp6.xy = float2(cos(temp2.z), sin(temp2.z)); + // mul r2, r4.yyxx, r6.xyxy + temp2 = temp4.yyxx * temp6.xyxy; + // mul r6.xy, r5.x, r6 + temp6.xy = temp5.xx * temp6.xy; + // mov r6.z, -r5.y + temp6.z = -temp5.y; + // mad r7.xy, r5.y, r2.yzzw, r2.zyzw + temp7.xy = temp5.yy * temp2.yz + temp2.zy; + // mad r2.xy, r5.y, r2.xwzw, -r2.wxzw + temp2.xy = temp5.yy * temp2.xw + -temp2.wx; + // mul r4.xy, r4.yxzw, r5.x + temp4.xy = temp4.yx * temp5.xx; + // dp3 r1.w, r0.yzww, r0.yzww + temp1.w = dot(temp0.yzw, temp0.yzw); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // slt r1.w, r1.w, c31.w + temp1.w = (temp1.w < float1(0.001)) ? 1 : 0; + // lrp r5.xyz, r1.w, v1, r0.yzww + temp5.xyz = lerp(temp0.yzw, i.texcoord.xyz, temp1.www); + // dp3 r0.y, r5, r5 + temp0.y = dot(temp5.xyz, temp5.xyz); + // rsq r0.y, r0.y + temp0.y = 1 / sqrt(temp0.y); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mul r4.zw, r5.xyxy, r5.xyxy + temp4.zw = temp5.xy * temp5.xy; + // add r0.w, r4.w, r4.z + temp0.w = temp4.w + temp4.z; + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // slt r0.z, -r0.z, r0.z + temp0.z = (-temp0.z < temp0.z) ? 1 : 0; + // mul r4.z, r5.z, r0.y + temp4.z = temp5.z * temp0.y; + // mul r4.w, r0.y, r1.w + temp4.w = temp0.y * temp1.w; + // lrp r8.xz, r0.z, r4.zyww, c27.zyxw + temp8.xz = lerp(float2(0, 1), temp4.zw, temp0.zz); + // slt r0.y, -r1.w, r1.w + temp0.y = (-temp1.w < temp1.w) ? 1 : 0; + // mad r0.zw, r5.xyyx, r0.w, -c27.xyzx + temp0.zw = temp5.yx * temp0.ww + float2(-0, -1); + // mad r5.xy, r0.y, r0.zwzw, c27.zxzw + temp5.xy = temp0.yy * temp0.zw + float2(0, 1); + // mul r9.xy, r8.z, r5.yxzw + temp9.xy = temp8.zz * temp5.yx; + // mov r9.z, -r5.x + temp9.z = -temp5.x; + // mul r5.xw, -r8.x, r5.yyzx + temp5.xw = -temp8.xx * temp5.yx; + // mov r9.w, r5.x + temp9.w = temp5.x; + // dp3 r0.y, r6, r9.xzww + temp0.y = dot(temp6.xyz, temp9.xzw); + // mov r5.z, r9.y + temp5.z = temp9.y; + // dp3 r10.x, r6.yxzw, r5.yzww + temp10.x = dot(temp6.yxz, temp5.yzw); + // mov r8.y, c27.z + temp8.y = float1(0); + // dp3 r6.x, r6, r8 + temp6.x = dot(temp6.xyz, temp8.xyz); + // mov r2.z, r7.x + temp2.z = temp7.x; + // mov r2.w, r4.x + temp2.w = temp4.x; + // dp3 r0.z, r2.xzww, r9.xzww + temp0.z = dot(temp2.xzw, temp9.xzw); + // dp3 r10.y, r2.zxww, r5.yzww + temp10.y = dot(temp2.zxw, temp5.yzw); + // dp3 r6.y, r2.xzww, r8 + temp6.y = dot(temp2.xzw, temp8.xyz); + // mov r7.z, r2.y + temp7.z = temp2.y; + // mov r7.w, r4.y + temp7.w = temp4.y; + // dp3 r0.w, r7.yzww, r9.xzww + temp0.w = dot(temp7.yzw, temp9.xzw); + // dp3 r10.z, r7.zyww, r5.yzww + temp10.z = dot(temp7.zyw, temp5.yzw); + // dp3 r6.z, r7.yzww, r8 + temp6.z = dot(temp7.yzw, temp8.xyz); + // dp3 r0.y, r3.yzww, r0.yzww + temp0.y = dot(temp3.yzw, temp0.yzw); + // dp3 r0.z, r3.yzww, r10 + temp0.z = dot(temp3.yzw, temp10.xyz); + // dp3 r0.w, r3.yzww, r6 + temp0.w = dot(temp3.yzw, temp6.xyz); + // add r1.xyz, r1, r0.yzww + temp1.xyz = temp1.xyz + temp0.yzw; + // mul r0.y, r3.x, c32.w + temp0.y = temp3.x * float1(0.6666667); + // mov r1.w, c27.x + temp1.w = float1(1); + // dp4 r2.x, r1, c85 + temp2.x = dot(temp1, (WorldView._m00_m10_m20_m30)); + // dp4 r2.y, r1, c86 + temp2.y = dot(temp1, (WorldView._m01_m11_m21_m31)); + // dp4 r2.z, r1, c87 + temp2.z = dot(temp1, (WorldView._m02_m12_m22_m32)); + // dp4 r2.w, r1, c88 + temp2.w = dot(temp1, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r2.z, r0.y + o.texcoord5.x = temp2.z * temp0.y; + // dp4 r1.x, r2, c124 + temp1.x = dot(temp2, (Projection._m00_m10_m20_m30)); + // dp4 r1.y, r2, c125 + temp1.y = dot(temp2, (Projection._m01_m11_m21_m31)); + // dp4 r1.z, r2, c126 + temp1.z = dot(temp2, (Projection._m02_m12_m22_m32)); + // dp4 r1.w, r2, c127 + temp1.w = dot(temp2, (Projection._m03_m13_m23_m33)); + // rcp r0.z, r1.w + temp0.z = 1.0f / temp1.w; + // mul o4.x, r1.z, r0.z + o.texcoord2 = temp1.z * temp0.z; + // mul r0.z, r0.x, c72.x + temp0.z = temp0.x * Draw.SpeedMultiplier.x; + // min r2.y, r0.z, c45.x + temp2.y = min(temp0.z, expr45.x); + // mov r3.x, c27.x + temp3.x = float1(1); + // mad r0.w, r0.x, c72.x, r3.x + temp0.w = temp0.x * Draw.SpeedMultiplier.x + temp3.x; + // min r2.x, r0.w, c45.x + temp2.x = min(temp0.w, expr45.x); + // if b0 + if (Error ConstBool0Error) { + // frc r3.xy, r2.yxzw + temp3.xy = frac(temp2.yx); + // add r4.xz, r2.yyxw, -r3.xyyw + temp4.xz = temp2.yx + -temp3.xy; + // mov r4.y, c51.x + temp4.y = expr51.x; + // add r3.yz, r4.xxyw, c34[a0.x].xxww + temp3.yz = temp4.xy + float2(0, 0); + // mul o1.xy, r3.yzzw, c52.x + o.texcoord = temp3.yzzw * expr52.x; + // mov r4.w, c54.x + temp4.w = expr54.x; + // add r3.yz, r4.xzww, c34[a0.x].xxww + temp3.yz = temp4.zw + float2(0, 0); + // mul o5.xy, r3.yzzw, c52.x + o.texcoord3.xy = temp3.yz * expr52.xx; + // mov o5.z, r3.x + o.texcoord3.z = temp3.x; + // else + } else { + // mad r3.x, v2.x, c37.y, c37.z + temp3.x = i.texcoord1.x * float1(0.1875) + float1(1.375); + // frc r3.x, r3.x + temp3.x = frac(temp3.x); + // mul r3.x, r3.x, c27.w + temp3.x = temp3.x * float1(16); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.x, r3.x, -r3.y + temp3.x = temp3.x + -temp3.y; + // mova a0.y, r3.x + addr0.y = temp3.x; + // mov r3.x, c63.x + temp3.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r3.y, r3.x, c11[a0.y].x + temp3.y = temp3.x * float1(0.957897); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.w, r3.y, -r3.z + temp3.w = temp3.y + -temp3.z; + // slt r3.y, r3.y, -r3.y + temp3.y = (temp3.y < -temp3.y) ? 1 : 0; + // slt r3.z, -r3.z, r3.z + temp3.z = (-temp3.z < temp3.z) ? 1 : 0; + // mad r2.w, r3.y, r3.z, r3.w + temp2.w = temp3.y * temp3.z + temp3.w; + // if b1 + if (Error ConstBool1Error) { + // mad r3.y, v2.x, c38.y, c38.z + temp3.y = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r3.y, r3.y + temp3.y = frac(temp3.y); + // mul r3.y, r3.y, c27.w + temp3.y = temp3.y * float1(16); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.y, r3.y, -r3.z + temp3.y = temp3.y + -temp3.z; + // mova a0.y, r3.y + addr0.y = temp3.y; + // mul r3.x, r3.x, c11[a0.y].x + temp3.x = temp3.x * float1(0.957897); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.z, r3.x, -r3.y + temp3.z = temp3.x + -temp3.y; + // slt r3.x, r3.x, -r3.x + temp3.x = (temp3.x < -temp3.x) ? 1 : 0; + // slt r3.y, -r3.y, r3.y + temp3.y = (-temp3.y < temp3.y) ? 1 : 0; + // mad r2.z, r3.x, r3.y, r3.z + temp2.z = temp3.x * temp3.y + temp3.z; + // add r3.xy, r2.zwzw, c34[a0.x].xwzw + temp3.xy = temp2.zw + float2(0, 0); + // mul r3.xy, r3, c56.x + temp3.xy = temp3.xy * expr56.xx; + // mov o5.z, c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r3 + o.texcoord3.xy = temp3.xy; + // mov o1.xy, r3 + o.texcoord = temp3; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r3.z, r2.y + temp3.z = frac(temp2.y); + // mov r3.w, c27.z + temp3.w = float1(0); + // add r2.yz, r2.xyww, -r3.xzww + temp2.yz = temp2.yw + -temp3.zw; + // add r2.yz, r2, c34[a0.x].xxww + temp2.yz = temp2.yz + float2(0, 0); + // mul o1.xy, r2.yzzw, c60.x + o.texcoord = temp2.yzzw * expr60.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // mov r2.z, c27.z + temp2.z = float1(0); + // add r2.xy, r2.xwzw, -r2.yzzw + temp2.xy = temp2.xw + -temp2.yz; + // add r2.xy, r2, c34[a0.x].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul r3.xy, r2, c60.x + temp3.xy = temp2.xy * expr60.xx; + // mov o5.xyz, r3 + o.texcoord3 = temp3; + // else + } else { + // mul r2.x, r0.z, c61.x + temp2.x = temp0.z * expr61.x; + // frc r2.y, r2_abs.x + temp2.y = frac(abs(temp2).x); + // sge r2.x, r2.x, -r2.x + temp2.x = (temp2.x >= -temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, r2.y, -r2.y + temp3.x = lerp(-temp2.y, temp2.y, temp2.x); + // mul r2.x, r3.x, c63.y + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r2.x, c62.x + temp2.y = temp2.x * expr62.x; + // frc r2.z, r2_abs.y + temp2.z = frac(abs(temp2).y); + // sge r2.w, r2.y, -r2.y + temp2.w = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r2.x, r3.x, c63.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c34[a0.x].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul o1.xy, r2, c62.x + o.texcoord = temp2 * expr62.x; + // mul r0.w, r0.w, c61.x + temp0.w = temp0.w * expr61.x; + // frc r2.x, r0_abs.w + temp2.x = frac(abs(temp0).w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r3.x, r0.w, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.w); + // mul r0.w, r3.x, c63.y + temp0.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.w, c62.x + temp2.y = temp0.w * expr62.x; + // frc r0.w, r2_abs.y + temp0.w = frac(abs(temp2).y); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.z); + // mul r2.x, r3.x, c63.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c34[a0.x].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul o5.xy, r2, c62.x + o.texcoord3.xy = temp2.xy * expr62.xx; + // frc o5.z, r0.z + o.texcoord3.z = frac(temp0.z); + // endif + } + // endif + } + // endif + } + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // mov r2, c64 + temp2 = Draw.ColorAnimationFunctions[0]; + // mad r2, r2, r0.x, c65 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[1]; + // slt r0.zw, r0.x, c70.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c66 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.x, c67 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r4, c68 + temp4 = Draw.ColorAnimationFunctions[4]; + // mad r4, r4, r0.x, c69 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[5]; + // lrp r5, r0.w, r3, r4 + temp5 = lerp(temp4, temp3, temp0.w); + // lrp r3, r0.z, r2, r5 + temp3 = lerp(temp5, temp2, temp0.z); + // mov r2.xy, c73 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.z].x, r2.y, r2.x + temp0.x = float1(0.957897) * temp2.y + temp2.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r1 + o.position = temp1; + // mov o3.xyz, c27.x + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r1 + o.texcoord4 = temp1; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +// VS_Array_H_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_H_Shader_2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_H_Shader_2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +VS_Array_H_Shader_2_Output VS_Array_H_Shader_2(VS_Array_H_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 44 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 44 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 51 ConstInput 2 + 1 - ConstOutput: 54 ConstInput 1 + 2 - ConstOutput: 56 ConstInput 1 + 3 - ConstOutput: 60 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + float4 expr61; + float4 expr62; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c44.x, c1.x, (30) + expr44.x = Time.x * (30); + // add c45.x, c0.x, (-1) + expr45.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c61.x, c0.y + expr61.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c51.x, r1.x + expr51.x = temp1.x; + // mov c54.x, r1.x + expr54.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c52.x, r0.x + expr52.x = temp0.x; + // mov c56.x, r0.x + expr56.x = temp0.x; + // mov c60.x, r0.x + expr60.x = temp0.x; + // mov c62.x, r0.x + expr62.x = temp0.x; + } + + VS_Array_H_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp7; + float3 addr0, temp6; + // def c43, 0.1875, 8.9375, 2.0625, 2.75 + // def c27, 1, 0.5, 0, 16 + // def c36, 1, 6.283185, -3.141593, 1 + // def c30, 0, 0.5, 0, 0.1591549 + // def c31, 1, 0, 0.5, 0.6666667 + // def c37, 1, 0.1875, 1.375, 0 + // def c38, 0, 0.1875, 4.8125, 0 + // def c28, 1, -0.5, 0, 1.0001 + // def c29, 0, -0.5, 0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, 1, 0, -0.5, 0 + // def c33, 0, 0, -0.5, 0 + // def c34, 0, 0, 0.5, 0 + // def c35, 0, 0, 0, 1 + // def c39, 0, 0, 0, 1 + // def c40, 1, 0, 0, 1 + // def c41, 1, 0, 0, 0 + // def c42, 0, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // add r0.x, c44.x, -v1.w + temp0.x = expr44.x + -i.texcoord.w; + // mad r0.yzw, v2.x, c43.x, c43 + temp0.yzw = i.texcoord1.xxx * float3(0.1875, 0.1875, 0.1875) + float3(8.9375, 2.0625, 2.75); + // frc r0.yzw, r0 + temp0.yzw = frac(temp0.yzw); + // mul r0.yzw, r0, c27.w + temp0.yzw = temp0.yzw * float3(16, 16, 16); + // frc r1.xyz, r0.yzww + temp1.xyz = frac(temp0.yzw); + // add r0.yzw, r0, -r1.xxyz + temp0.yzw = temp0.yzw + -temp1.xyz; + // mova a0.xyz, r0.yzww + addr0.xyz = temp0.yzw; + // mov r1.xy, c130 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r0.y, c11[a0.x].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // add r0.z, r0.y, -c27.x + temp0.z = temp0.y + float1(-1); + // sge r0.z, -r0_abs.z, r0_abs.z + temp0.z = (r0.z == 0) ? 1 : 0; + // lrp r1.x, r0.z, c28.w, r0.y + temp1.x = lerp(temp0.y, float1(1.0001), temp0.z); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // mul r0.z, r0.x, r0.y + temp0.z = temp0.x * temp0.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, -c27.x + temp0.z = temp0.z + float1(-1); + // mul r0.y, r0.y, c29.w + temp0.y = temp0.y * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mul r0.z, r0.x, c27.y + temp0.z = temp0.x * float1(0.5); + // mov r1.xyz, c128 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.z, r1, c129 + temp1.xyz = temp0.zzz * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mad r0.yzw, v1.xxyz, r0.y, r1.xxyz + temp0.yzw = i.texcoord.xyz * temp0.yyy + temp1.xyz; + // add r0.yzw, r0, v0.xxyz + temp0.yzw = temp0.yzw + i.position.xyz; + // mov r1.xyz, c11[a0.y] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c75 + temp2.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r2.xyz, r1, r2, c74 + temp2.xyz = temp1.xyz * temp2.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r3.xyz, c77 + temp3.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r3.xyz, r1, r3, c76 + temp3.xyz = temp1.xyz * temp3.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mov r4.xyz, c79 + temp4.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r4.xyz, r1, r4, c78 + temp4.xyz = temp1.xyz * temp4.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r5.xyz, r4, -c27.x + temp5.xyz = temp4.xyz + float3(-1, -1, -1); + // sge r5.xyz, -r5_abs, r5_abs + temp5.xyz = (r5.xyz == 0) ? 1 : 0; + // lrp r6.xyz, r5, c28.w, r4 + temp6.xyz = lerp(temp4.xyz, float3(1.0001, 1.0001, 1.0001), temp5.xyz); + // log r4.x, r6.x + temp4.x = log2(temp6.x); + // log r4.y, r6.y + temp4.y = log2(temp6.y); + // log r4.z, r6.z + temp4.z = log2(temp6.z); + // mul r5.xyz, r0.x, r4 + temp5.xyz = temp0.xxx * temp4.xyz; + // exp r6.x, r5.x + temp6.x = exp2(temp5.x); + // exp r6.y, r5.y + temp6.y = exp2(temp5.y); + // exp r6.z, r5.z + temp6.z = exp2(temp5.z); + // add r5.xyz, r6, -c27.x + temp5.xyz = temp6.xyz + float3(-1, -1, -1); + // mul r4.xyz, r4, c29.w + temp4.xyz = temp4.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r6.x, r4.x + temp6.x = 1.0f / temp4.x; + // rcp r6.y, r4.y + temp6.y = 1.0f / temp4.y; + // rcp r6.z, r4.z + temp6.z = 1.0f / temp4.z; + // mul r4.xyz, r5, r6 + temp4.xyz = temp5.xyz * temp6.xyz; + // mad r2.xyz, r3, r4, r2 + temp2.xyz = temp3.xyz * temp4.xyz + temp2.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mul r2.yzw, r2.xxyz, c27[a0.x].xxyz + temp2.yzw = temp2.xyz * float3(1, 0.5, 0); + // mov r3.xyz, c81 + temp3.xyz = GeometryUpdate.AngleSpreads.xyz; + // mad r3.xyz, r1, r3, c80 + temp3.xyz = temp1.xyz * temp3.xyz + GeometryUpdate.AngleMinimums.xyz; + // mov r4.xyz, c83 + temp4.xyz = GeometryUpdate.AngularRateSpreads.xyz; + // mad r1.yzw, r1.xxyz, r4.xxyz, c82.xxyz + temp1.yzw = temp1.xyz * temp4.xyz + GeometryUpdate.AngularRateMinimums.xyz; + // mad r1.x, r1.x, c84.y, c84.x + temp1.x = temp1.x * GeometryUpdate.AngleDampingMin_AngleDampingSpread.y + GeometryUpdate.AngleDampingMin_AngleDampingSpread.x; + // add r3.w, r1.x, -c27.x + temp3.w = temp1.x + float1(-1); + // sge r3.w, -r3_abs.w, r3_abs.w + temp3.w = (r3.w == 0) ? 1 : 0; + // lrp r4.x, r3.w, c28.w, r1.x + temp4.x = lerp(temp1.x, float1(1.0001), temp3.w); + // log r1.x, r4.x + temp1.x = log2(temp4.x); + // mul r3.w, r0.x, r1.x + temp3.w = temp0.x * temp1.x; + // exp r3.w, r3.w + temp3.w = exp2(temp3.w); + // add r3.w, r3.w, -c27.x + temp3.w = temp3.w + float1(-1); + // mul r1.x, r1.x, c29.w + temp1.x = temp1.x * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r3.w, r1.x + temp1.x = temp3.w * temp1.x; + // mad r1.xyz, r1.yzww, r1.x, r3 + temp1.xyz = temp1.yzw * temp1.xxx + temp3.xyz; + // mad r1.xyz, r1, c30.w, c30.y + temp1.xyz = temp1.xyz * float3(0.15915494, 0.15915494, 0.15915494) + float3(0.5, 0.5, 0.5); + // frc r1.xyz, r1 + temp1.xyz = frac(temp1.xyz); + // mad r1.xyz, r1, c36.y, c36.z + temp1.xyz = temp1.xyz * float3(6.2831855, 6.2831855, 6.2831855) + float3(-3.1415927, -3.1415927, -3.1415927); + // sincos r3.xy, r1.x + temp3.xy = float2(cos(temp1.x), sin(temp1.x)); + // sincos r4.xy, r1.y + temp4.xy = float2(cos(temp1.y), sin(temp1.y)); + // sincos r5.xy, r1.z + temp5.xy = float2(cos(temp1.z), sin(temp1.z)); + // mul r1, r3.yyxx, r5.xyxy + temp1 = temp3.yyxx * temp5.xyxy; + // mul r5.xy, r4.x, r5 + temp5.xy = temp4.xx * temp5.xy; + // mov r6.x, -r4.y + temp6.x = -temp4.y; + // mad r7.xy, r4.y, r1.yzzw, r1.zyzw + temp7.xy = temp4.yy * temp1.yz + temp1.zy; + // mad r1.xy, r4.y, r1.xwzw, -r1.wxzw + temp1.xy = temp4.yy * temp1.xw + -temp1.wx; + // mul r6.yz, r3.xyxw, r4.x + temp6.yz = temp3.yx * temp4.xx; + // mov r5.z, r1.x + temp5.z = temp1.x; + // mov r5.w, r7.y + temp5.w = temp7.y; + // dp3 r1.x, r2.yzww, r5.xzww + temp1.x = dot(temp2.yzw, temp5.xzw); + // mov r7.z, r5.y + temp7.z = temp5.y; + // mov r7.w, r1.y + temp7.w = temp1.y; + // dp3 r1.z, r2.zyww, r7.xzww + temp1.z = dot(temp2.zyw, temp7.xzw); + // dp3 r1.w, r2.yzww, r6 + temp1.w = dot(temp2.yzw, temp6.xyz); + // add r1.xyz, r0.yzww, r1.xzww + temp1.xyz = temp0.yzw + temp1.xzw; + // mul r0.y, r2.x, c31.w + temp0.y = temp2.x * float1(0.6666667); + // mov r1.w, c27.x + temp1.w = float1(1); + // dp4 r2.x, r1, c85 + temp2.x = dot(temp1, (WorldView._m00_m10_m20_m30)); + // dp4 r2.y, r1, c86 + temp2.y = dot(temp1, (WorldView._m01_m11_m21_m31)); + // dp4 r2.z, r1, c87 + temp2.z = dot(temp1, (WorldView._m02_m12_m22_m32)); + // dp4 r2.w, r1, c88 + temp2.w = dot(temp1, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r2.z, r0.y + o.texcoord5.x = temp2.z * temp0.y; + // dp4 r1.x, r2, c124 + temp1.x = dot(temp2, (Projection._m00_m10_m20_m30)); + // dp4 r1.y, r2, c125 + temp1.y = dot(temp2, (Projection._m01_m11_m21_m31)); + // dp4 r1.z, r2, c126 + temp1.z = dot(temp2, (Projection._m02_m12_m22_m32)); + // dp4 r1.w, r2, c127 + temp1.w = dot(temp2, (Projection._m03_m13_m23_m33)); + // rcp r0.z, r1.w + temp0.z = 1.0f / temp1.w; + // mul o4.x, r1.z, r0.z + o.texcoord2 = temp1.z * temp0.z; + // mul r0.z, r0.x, c72.x + temp0.z = temp0.x * Draw.SpeedMultiplier.x; + // min r2.y, r0.z, c45.x + temp2.y = min(temp0.z, expr45.x); + // mov r3.x, c27.x + temp3.x = float1(1); + // mad r0.w, r0.x, c72.x, r3.x + temp0.w = temp0.x * Draw.SpeedMultiplier.x + temp3.x; + // min r2.x, r0.w, c45.x + temp2.x = min(temp0.w, expr45.x); + // if b0 + if (Error ConstBool0Error) { + // frc r3.xy, r2.yxzw + temp3.xy = frac(temp2.yx); + // add r4.xz, r2.yyxw, -r3.xyyw + temp4.xz = temp2.yx + -temp3.xy; + // mov r4.y, c51.x + temp4.y = expr51.x; + // add r3.yz, r4.xxyw, c34[a0.x].xxww + temp3.yz = temp4.xy + float2(0, 0); + // mul o1.xy, r3.yzzw, c52.x + o.texcoord = temp3.yzzw * expr52.x; + // mov r4.w, c54.x + temp4.w = expr54.x; + // add r3.yz, r4.xzww, c34[a0.x].xxww + temp3.yz = temp4.zw + float2(0, 0); + // mul o5.xy, r3.yzzw, c52.x + o.texcoord3.xy = temp3.yz * expr52.xx; + // mov o5.z, r3.x + o.texcoord3.z = temp3.x; + // else + } else { + // mad r3.x, v2.x, c37.y, c37.z + temp3.x = i.texcoord1.x * float1(0.1875) + float1(1.375); + // frc r3.x, r3.x + temp3.x = frac(temp3.x); + // mul r3.x, r3.x, c27.w + temp3.x = temp3.x * float1(16); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.x, r3.x, -r3.y + temp3.x = temp3.x + -temp3.y; + // mova a0.y, r3.x + addr0.y = temp3.x; + // mov r3.x, c63.x + temp3.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r3.y, r3.x, c11[a0.y].x + temp3.y = temp3.x * float1(0.957897); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.w, r3.y, -r3.z + temp3.w = temp3.y + -temp3.z; + // slt r3.y, r3.y, -r3.y + temp3.y = (temp3.y < -temp3.y) ? 1 : 0; + // slt r3.z, -r3.z, r3.z + temp3.z = (-temp3.z < temp3.z) ? 1 : 0; + // mad r2.w, r3.y, r3.z, r3.w + temp2.w = temp3.y * temp3.z + temp3.w; + // if b1 + if (Error ConstBool1Error) { + // mad r3.y, v2.x, c38.y, c38.z + temp3.y = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r3.y, r3.y + temp3.y = frac(temp3.y); + // mul r3.y, r3.y, c27.w + temp3.y = temp3.y * float1(16); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.y, r3.y, -r3.z + temp3.y = temp3.y + -temp3.z; + // mova a0.y, r3.y + addr0.y = temp3.y; + // mul r3.x, r3.x, c11[a0.y].x + temp3.x = temp3.x * float1(0.957897); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.z, r3.x, -r3.y + temp3.z = temp3.x + -temp3.y; + // slt r3.x, r3.x, -r3.x + temp3.x = (temp3.x < -temp3.x) ? 1 : 0; + // slt r3.y, -r3.y, r3.y + temp3.y = (-temp3.y < temp3.y) ? 1 : 0; + // mad r2.z, r3.x, r3.y, r3.z + temp2.z = temp3.x * temp3.y + temp3.z; + // add r3.xy, r2.zwzw, c34[a0.x].xwzw + temp3.xy = temp2.zw + float2(0, 0); + // mul r3.xy, r3, c56.x + temp3.xy = temp3.xy * expr56.xx; + // mov o5.z, c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r3 + o.texcoord3.xy = temp3.xy; + // mov o1.xy, r3 + o.texcoord = temp3; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r3.z, r2.y + temp3.z = frac(temp2.y); + // mov r3.w, c27.z + temp3.w = float1(0); + // add r2.yz, r2.xyww, -r3.xzww + temp2.yz = temp2.yw + -temp3.zw; + // add r2.yz, r2, c34[a0.x].xxww + temp2.yz = temp2.yz + float2(0, 0); + // mul o1.xy, r2.yzzw, c60.x + o.texcoord = temp2.yzzw * expr60.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // mov r2.z, c27.z + temp2.z = float1(0); + // add r2.xy, r2.xwzw, -r2.yzzw + temp2.xy = temp2.xw + -temp2.yz; + // add r2.xy, r2, c34[a0.x].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul r3.xy, r2, c60.x + temp3.xy = temp2.xy * expr60.xx; + // mov o5.xyz, r3 + o.texcoord3 = temp3; + // else + } else { + // mul r2.x, r0.z, c61.x + temp2.x = temp0.z * expr61.x; + // frc r2.y, r2_abs.x + temp2.y = frac(abs(temp2).x); + // sge r2.x, r2.x, -r2.x + temp2.x = (temp2.x >= -temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, r2.y, -r2.y + temp3.x = lerp(-temp2.y, temp2.y, temp2.x); + // mul r2.x, r3.x, c63.y + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r2.x, c62.x + temp2.y = temp2.x * expr62.x; + // frc r2.z, r2_abs.y + temp2.z = frac(abs(temp2).y); + // sge r2.w, r2.y, -r2.y + temp2.w = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r2.x, r3.x, c63.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c34[a0.x].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul o1.xy, r2, c62.x + o.texcoord = temp2 * expr62.x; + // mul r0.w, r0.w, c61.x + temp0.w = temp0.w * expr61.x; + // frc r2.x, r0_abs.w + temp2.x = frac(abs(temp0).w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r3.x, r0.w, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.w); + // mul r0.w, r3.x, c63.y + temp0.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.w, c62.x + temp2.y = temp0.w * expr62.x; + // frc r0.w, r2_abs.y + temp0.w = frac(abs(temp2).y); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.z); + // mul r2.x, r3.x, c63.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c34[a0.x].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul o5.xy, r2, c62.x + o.texcoord3.xy = temp2.xy * expr62.xx; + // frc o5.z, r0.z + o.texcoord3.z = frac(temp0.z); + // endif + } + // endif + } + // endif + } + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // mov r2, c64 + temp2 = Draw.ColorAnimationFunctions[0]; + // mad r2, r2, r0.x, c65 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[1]; + // slt r0.zw, r0.x, c70.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c66 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.x, c67 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r4, c68 + temp4 = Draw.ColorAnimationFunctions[4]; + // mad r4, r4, r0.x, c69 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[5]; + // lrp r5, r0.w, r3, r4 + temp5 = lerp(temp4, temp3, temp0.w); + // lrp r3, r0.z, r2, r5 + temp3 = lerp(temp5, temp2, temp0.z); + // mov r2.xy, c73 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.z].x, r2.y, r2.x + temp0.x = float1(0.957897) * temp2.y + temp2.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r1 + o.position = temp1; + // mov o3.xyz, c27.x + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r1 + o.texcoord4 = temp1; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +VertexShader VS_Array_H[3] = { + compile vs_3_0 VS_Array_H_Shader_0(), // 31 + compile vs_3_0 VS_Array_H_Shader_1(), // 32 + compile vs_3_0 VS_Array_H_Shader_2(), // 33 +}; +// PS_Array_H_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_0(PS_Array_H_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v4.y, v4.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v2, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v2.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.xyz, r0.x, r1 + out_color.xyz = temp0.xxx * temp1.xyz; + // mov oC0.w, r1.w + out_color.w = temp1.w; + // + + return out_color; +} + +// PS_Array_H_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_1(PS_Array_H_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, -1, 1 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mad r0.xyz, r1, r0.x, c0.z + temp0.xyz = temp1.xyz * temp0.xxx + float3(-1, -1, -1); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.w + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_2(PS_Array_H_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_3(PS_Array_H_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v4.y, v4.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v2, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v2.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // mov oC0.xyz, r1 + out_color.xyz = temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_4(PS_Array_H_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, -1, 1 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r0.y, r3.w, v1.w + temp0.y = temp3.w * i.color.w; + // mad r1.xyz, r3, v1, c0.z + temp1.xyz = temp3.xyz * i.color.xyz + float3(-1, -1, -1); + // mul oC0.w, r0.x, r0.y + out_color.w = temp0.x * temp0.y; + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r0, r1, c0.w + out_color.xyz = temp0.xyz * temp1.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_5(PS_Array_H_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_6_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_6(PS_Array_H_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v2, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v2.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul oC0, r2, v1 + out_color = temp2 * i.color; + // + + return out_color; +} + +// PS_Array_H_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_7_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_7(PS_Array_H_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, -1, 1, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mad r0.xyz, r2, v1, c0.x + temp0.xyz = temp2.xyz * i.color.xyz + float3(-1, -1, -1); + // mul r0.w, r2.w, v1.w + temp0.w = temp2.w * i.color.w; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.y + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_Array_H_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_8_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_8(PS_Array_H_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_Array_H[9] = { + compile ps_3_0 PS_Array_H_Shader_0(), // 34 + compile ps_3_0 PS_Array_H_Shader_1(), // 35 + compile ps_3_0 PS_Array_H_Shader_2(), // 36 + compile ps_3_0 PS_Array_H_Shader_3(), // 37 + compile ps_3_0 PS_Array_H_Shader_4(), // 38 + compile ps_3_0 PS_Array_H_Shader_5(), // 39 + compile ps_3_0 PS_Array_H_Shader_6(), // 40 + compile ps_3_0 PS_Array_H_Shader_7(), // 41 + compile ps_3_0 PS_Array_H_Shader_8(), // 42 +}; +// VS_Array_L_Shader_0 Vertex_2_0 Has PRES True +struct VS_Array_L_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_L_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +VS_Array_L_Shader_0_Output VS_Array_L_Shader_0(VS_Array_L_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 44 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 44 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 50 ConstInput 2 + 1 - ConstOutput: 53 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c44.x, c1.x, (30) + expr44.x = Time.x * (30); + // add c45.x, c0.x, (-1) + expr45.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c55.x, r1.x, r0.y + expr55.x = temp1.x < temp0.y; + // mul c56.x, r0.x, r2.x + expr56.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c50.x, r2.z, r0.x + expr50.x = temp2.z + temp0.x; + // rcp c51.x, c0.x + expr51.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c54.x, r0.x, r1.x + expr54.x = temp0.x >= temp1.x; + // rcp c53.x, c0.y + expr53.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + VS_Array_L_Shader_0_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + // def c43, 8.9375, 2.0625, 1.375, 4.8125 + // def c28, 1, -0.5, 0, 16 + // def c36, 1, 0.1875, 2.75, 1 + // def c29, 0, -0.5, 0, 1.0001 + // def c27, 1, 0.5, 0, 0.1875 + // def c30, 0, 0.5, 0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c31, 1, 0, 0.5, 0 + // def c32, 1, 0, -0.5, 0 + // def c33, 0, 0, -0.5, 0 + // def c34, 0, 0, 0.5, 0 + // def c35, 0, 0, 0, 1 + // def c37, 1, 0, 0, 0 + // def c38, 0, 0, 0, 0 + // def c39, 0, 0, 0, 1 + // def c40, 1, 0, 0, 1 + // def c41, 1, 0, 0, 0 + // def c42, 0, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c43 + temp0 = i.texcoord1.x * temp0.w + float4(8.9375, 2.0625, 1.375, 4.8125); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.w + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xyz, c11[a0.y] + temp0.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r1.xyz, c73 + temp1.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r1.xyz, r0, r1, c72 + temp1.xyz = temp0.xyz * temp1.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r2.xyz, r1, -c27.x + temp2.xyz = temp1.xyz + float3(-1, -1, -1); + // mul r2.xyz, r2, r2 + temp2.xyz = temp2.xyz * temp2.xyz; + // sge r2.xyz, -r2, r2 + temp2.xyz = (-temp2.xyz >= temp2.xyz) ? 1 : 0; + // lrp r3.xyz, r2, c29.w, r1 + temp3.xyz = lerp(temp1.xyz, float3(1.0001, 1.0001, 1.0001), temp2.xyz); + // log r1.x, r3.x + temp1.x = log2(temp3.x); + // log r1.y, r3.y + temp1.y = log2(temp3.y); + // log r1.z, r3.z + temp1.z = log2(temp3.z); + // mul r2.xyz, r1, c30.w + temp2.xyz = temp1.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r3.x, r2.x + temp3.x = 1.0f / temp2.x; + // rcp r3.y, r2.y + temp3.y = 1.0f / temp2.y; + // rcp r3.z, r2.z + temp3.z = 1.0f / temp2.z; + // add r0.w, -v1.w, c44.x + temp0.w = -i.texcoord.w + expr44.x; + // mul r1.xyz, r1, r0.w + temp1.xyz = temp1.xyz * temp0.www; + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // add r1.xyz, r2, -c27.x + temp1.xyz = temp2.xyz + float3(-1, -1, -1); + // mul r1.xyz, r3, r1 + temp1.xyz = temp3.xyz * temp1.xyz; + // mov r2.xyz, c69 + temp2.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r2.xyz, r0, r2, c68 + temp2.xyz = temp0.xyz * temp2.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r3.xyz, c71 + temp3.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r0.xyz, r0, r3, c70 + temp0.xyz = temp0.xyz * temp3.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mad r0.xyz, r0, r1, r2 + temp0.xyz = temp0.xyz * temp1.xyz + temp2.xyz; + // mov r1.xy, c80 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r1.x, c11[a0.x].x, r1.y, r1.x + temp1.x = float1(0.957897) * temp1.y + temp1.x; + // add r1.y, r1.x, -c27.x + temp1.y = temp1.x + float1(-1); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // sge r1.y, -r1.y, r1.y + temp1.y = (-temp1.y >= temp1.y) ? 1 : 0; + // lrp r2.x, r1.y, c29.w, r1.x + temp2.x = lerp(temp1.x, float1(1.0001), temp1.y); + // log r1.x, r2.x + temp1.x = log2(temp2.x); + // mul r1.y, r1.x, c30.w + temp1.y = temp1.x * float1(0.6931472); + // mul r1.x, r0.w, r1.x + temp1.x = temp0.w * temp1.x; + // rcp r1.y, r1.y + temp1.y = 1.0f / temp1.y; + // exp r1.x, r1.x + temp1.x = exp2(temp1.x); + // add r1.x, r1.x, -c27.x + temp1.x = temp1.x + float1(-1); + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mul r1.y, r0.w, c27.y + temp1.y = temp0.w * float1(0.5); + // mov r2.xyz, c78 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.yzw, r1.y, r2.xxyz, c79.xxyz + temp1.yzw = temp1.yyy * temp2.xyz + Physics.DriftVelocity.xyz; + // mul r1.yzw, r0.w, r1 + temp1.yzw = temp0.www * temp1.yzw; + // mad r1.xyz, v1, r1.x, r1.yzww + temp1.xyz = i.texcoord.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, v0 + temp1.xyz = temp1.xyz + i.position.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mad r1.xyz, c27[a0.x], r0, r1 + temp1.xyz = float3(1, 0.5, 0) * temp0.xyz + temp1.xyz; + // mov r1.w, c27.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c74 + o.position.x = dot(temp1, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c75 + o.position.y = dot(temp1, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c77 + temp0.y = dot(temp1, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c76 + temp0.x = dot(temp1, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mov r0.x, c57.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r0.x, c11[a0.w].x + temp0.y = temp0.x * float1(0.957897); + // mul r0.x, r0.x, c11[a0.z].x + temp0.x = temp0.x * float1(0.957897); + // frc r0.z, r0.y + temp0.z = frac(temp0.y); + // add r1.x, r0.y, -r0.z + temp1.x = temp0.y + -temp0.z; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r0.z, -r0.z, r0.z + temp0.z = (-temp0.z < temp0.z) ? 1 : 0; + // mad r1.y, r0.y, r0.z, r1.x + temp1.y = temp0.y * temp0.z + temp1.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r1.z, r0.x, r0.y, r0.z + temp1.z = temp0.x * temp0.y + temp0.z; + // add r0.xy, r1.yzzw, c34[a0.x].xwzw + temp0.xy = temp1.yz + float2(0, 0); + // mov r2.z, c27.z + temp2.z = float1(0); + // mul r0.z, r0.w, c66.x + temp0.z = temp0.w * Draw.SpeedMultiplier.x; + // min r1.x, r0.z, c45.x + temp1.x = min(temp0.z, expr45.x); + // mul r0.z, r0.z, c53.x + temp0.z = temp0.z * expr53.x; + // frc r2.xy, r1.x + temp2.xy = frac(temp1.x); + // add r1.xyz, r1.xxzw, -r2 + temp1.xyz = temp1.xxz + -temp2.xyz; + // add r1.yz, r1, c34[a0.x].xxww + temp1.yz = temp1.yz + float2(0, 0); + // abs r2.x, r0.z + temp2.x = abs(temp0.z); + // sge r0.z, r0.z, -r0.z + temp0.z = (temp0.z >= -temp0.z) ? 1 : 0; + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // lrp r3.x, r0.z, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.z); + // mul r0.z, r3.x, c57.y + temp0.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.z, c51.x + temp2.y = temp0.z * expr51.x; + // abs r0.z, r2.y + temp0.z = abs(temp2.y); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.z, -r0.z + temp3.x = lerp(-temp0.z, temp0.z, temp2.z); + // mul r2.x, r3.x, c57.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c34[a0.x].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul r2.xy, r2, c51.x + temp2.xy = temp2.xy * expr51.xx; + // mad r1.yz, r1, c51.x, -r2.xxyw + temp1.yz = temp1.yz * expr51.xx + -temp2.xy; + // mad r1.yz, c54.x, r1, r2.xxyw + temp1.yz = expr54.xx * temp1.yz + temp2.xy; + // mad r0.xy, r0, c51.x, -r1.yzzw + temp0.xy = temp0.xy * expr51.xx + -temp1.yz; + // mad r0.xy, c55.x, r0, r1.yzzw + temp0.xy = expr55.xx * temp0.xy + temp1.yz; + // mov r1.w, c50.x + temp1.w = expr50.x; + // add r1.xy, r1.xwzw, c34[a0.x].xwzw + temp1.xy = temp1.xw + float2(0, 0); + // mad r1.xy, r1, c51.x, -r0 + temp1.xy = temp1.xy * expr51.xx + -temp0.xy; + // mad oT0.xy, c56.x, r1, r0 + o.texcoord = expr56.x * temp1 + temp0; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // mov r1, c60 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c61 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c62 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c63 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c64 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c58 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c59 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // lrp r1, r0.y, r3, r4 + temp1 = lerp(temp4, temp3, temp0.y); + // mad r0.x, v2.x, c36.y, c36.z + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c28.w + temp0.x = temp0.x * float1(16); + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.x, r0.x, -r0.y + temp0.x = temp0.x + -temp0.y; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.xy, c67 + temp0.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // mul oD0, r1, r0.x + o.color = temp1 * temp0.x; + // + + return o; +} + +// VS_Array_L_Shader_1 Vertex_2_0 Has PRES True +struct VS_Array_L_Shader_1_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_L_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +VS_Array_L_Shader_1_Output VS_Array_L_Shader_1(VS_Array_L_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 44 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 44 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 50 ConstInput 2 + 1 - ConstOutput: 53 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c44.x, c1.x, (30) + expr44.x = Time.x * (30); + // add c45.x, c0.x, (-1) + expr45.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c55.x, r1.x, r0.y + expr55.x = temp1.x < temp0.y; + // mul c56.x, r0.x, r2.x + expr56.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c50.x, r2.z, r0.x + expr50.x = temp2.z + temp0.x; + // rcp c51.x, c0.x + expr51.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c54.x, r0.x, r1.x + expr54.x = temp0.x >= temp1.x; + // rcp c53.x, c0.y + expr53.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + VS_Array_L_Shader_1_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5, temp7, temp8; + float3 temp6, temp9, temp10; + // def c43, 8.9375, 2.0625, 1.375, 4.8125 + // def c28, 1, -0.5, 0, 16 + // def c36, 1, 6.283185, -3.141593, 1 + // def c31, 1, 0, 0.5, 0.1591549 + // def c32, 1, 0, -0.5, 0.001 + // def c37, 1, 0.1875, 2.75, 0 + // def c29, 0, -0.5, 0, 1.0001 + // def c27, 1, 0.5, 0, 0.1875 + // def c30, 0, 0.5, 0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c33, 0, 0, -0.5, 0 + // def c34, 0, 0, 0.5, 0 + // def c35, 0, 0, 0, 1 + // def c38, 0, 0, 0, 0 + // def c39, 0, 0, 0, 1 + // def c40, 1, 0, 0, 1 + // def c41, 1, 0, 0, 0 + // def c42, 0, 0, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c43 + temp0 = i.texcoord1.x * temp0.w + float4(8.9375, 2.0625, 1.375, 4.8125); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.w + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c85 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, -c27.x + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.w, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c30.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c44.x + temp0.z = -i.texcoord.w + expr44.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, -c27.x + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r0.y, r0.z, c27.y + temp0.y = temp0.z * float1(0.5); + // mov r1.xyz, c83 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.y, r1, c84 + temp1.xyz = temp0.yyy * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.z, r1 + temp1.xyz = temp0.zzz * temp1.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // dp3 r1.x, r0.xyww, r0.xyww + temp1.x = dot(temp0.xyw, temp0.xyw); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // slt r1.x, r1.x, c32.w + temp1.x = (temp1.x < float1(0.001)) ? 1 : 0; + // lrp r2.xyz, r1.x, v1, r0.xyww + temp2.xyz = lerp(temp0.xyw, i.texcoord.xyz, temp1.xxx); + // add r0.xyw, r0, v0.xyzz + temp0.xyw = temp0.xyw + i.position.xyz; + // mul r1.xy, r2, r2 + temp1.xy = temp2.xy * temp2.xy; + // add r1.x, r1.y, r1.x + temp1.x = temp1.y + temp1.x; + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mad r1.xz, r2.yyxw, r1.x, -c27.zyxw + temp1.xz = temp2.yx * temp1.xx + float2(-0, -1); + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r2.y, r1.y, r1.w + temp2.y = temp1.y * temp1.w; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // mul r2.x, r2.z, r1.w + temp2.x = temp2.z * temp1.w; + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // slt r1.w, -r1.w, r1.w + temp1.w = (-temp1.w < temp1.w) ? 1 : 0; + // lrp r3.xz, r1.w, r2.xyyw, c27.zyxw + temp3.xz = lerp(float2(0, 1), temp2.xy, temp1.ww); + // mov r2.xyz, c11[a0.y] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mad r1.w, r2.x, c78.y, c78.x + temp1.w = temp2.x * GeometryUpdate.AngleDampingMin_AngleDampingSpread.y + GeometryUpdate.AngleDampingMin_AngleDampingSpread.x; + // add r2.w, r1.w, -c27.x + temp2.w = temp1.w + float1(-1); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // sge r2.w, -r2.w, r2.w + temp2.w = (-temp2.w >= temp2.w) ? 1 : 0; + // lrp r3.w, r2.w, c29.w, r1.w + temp3.w = lerp(temp1.w, float1(1.0001), temp2.w); + // log r1.w, r3.w + temp1.w = log2(temp3.w); + // mul r2.w, r1.w, c30.w + temp2.w = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, -c27.x + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mov r4.xyz, c75 + temp4.xyz = GeometryUpdate.AngleSpreads.xyz; + // mad r4.xyz, r2, r4, c74 + temp4.xyz = temp2.xyz * temp4.xyz + GeometryUpdate.AngleMinimums.xyz; + // mov r5.xyz, c77 + temp5.xyz = GeometryUpdate.AngularRateSpreads.xyz; + // mad r5.xyz, r2, r5, c76 + temp5.xyz = temp2.xyz * temp5.xyz + GeometryUpdate.AngularRateMinimums.xyz; + // mad r4.xyz, r5, r1.w, r4 + temp4.xyz = temp5.xyz * temp1.www + temp4.xyz; + // mad r4.xyz, r4, c31.w, c31.z + temp4.xyz = temp4.xyz * float3(0.15915494, 0.15915494, 0.15915494) + float3(0.5, 0.5, 0.5); + // frc r4.xyz, r4 + temp4.xyz = frac(temp4.xyz); + // mad r4.xyz, r4, c36.y, c36.z + temp4.xyz = temp4.xyz * float3(6.2831855, 6.2831855, 6.2831855) + float3(-3.1415927, -3.1415927, -3.1415927); + // sincos r5.xy, r4.z, c0, c1 + temp5.xy = float2(cos(temp4.z), sin(temp4.z)); + // sincos r6.xy, r4.y, c0, c1 + temp6.xy = float2(cos(temp4.y), sin(temp4.y)); + // sincos r7.xy, r4.x, c0, c1 + temp7.xy = float2(cos(temp4.x), sin(temp4.x)); + // mul r4.xy, r5, r6.x + temp4.xy = temp5.xy * temp6.xx; + // mul r5, r5.xyxy, r7.yyxx + temp5 = temp5.xyxy * temp7.yyxx; + // mul r6.xz, r6.x, r7.yyxw + temp6.xz = temp6.xx * temp7.yx; + // mov r4.z, -r6.y + temp4.z = -temp6.y; + // mov r3.y, c27.z + temp3.y = float1(0); + // dp3 r7.x, r4, r3 + temp7.x = dot(temp4.xyz, temp3.xyz); + // mad r8.xy, r6.y, r5.xwzw, -r5.wxzw + temp8.xy = temp6.yy * temp5.xw + -temp5.wx; + // mad r5.xy, r6.y, r5.yzzw, r5.zyzw + temp5.xy = temp6.yy * temp5.yz + temp5.zy; + // mov r8.w, r6.x + temp8.w = temp6.x; + // mov r5.w, r6.z + temp5.w = temp6.z; + // mov r8.z, r5.x + temp8.z = temp5.x; + // dp3 r7.y, r8.xzww, r3 + temp7.y = dot(temp8.xzw, temp3.xyz); + // mov r5.z, r8.y + temp5.z = temp8.y; + // dp3 r7.z, r5.yzww, r3 + temp7.z = dot(temp5.yzw, temp3.xyz); + // mov r6.xyz, c73 + temp6.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r6.xyz, r2, r6, c72 + temp6.xyz = temp2.xyz * temp6.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r9.xyz, r6, -c27.x + temp9.xyz = temp6.xyz + float3(-1, -1, -1); + // mul r9.xyz, r9, r9 + temp9.xyz = temp9.xyz * temp9.xyz; + // sge r9.xyz, -r9, r9 + temp9.xyz = (-temp9.xyz >= temp9.xyz) ? 1 : 0; + // lrp r10.xyz, r9, c29.w, r6 + temp10.xyz = lerp(temp6.xyz, float3(1.0001, 1.0001, 1.0001), temp9.xyz); + // log r6.x, r10.x + temp6.x = log2(temp10.x); + // log r6.y, r10.y + temp6.y = log2(temp10.y); + // log r6.z, r10.z + temp6.z = log2(temp10.z); + // mul r9.xyz, r0.z, r6 + temp9.xyz = temp0.zzz * temp6.xyz; + // mul r6.xyz, r6, c30.w + temp6.xyz = temp6.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // exp r10.x, r9.x + temp10.x = exp2(temp9.x); + // exp r10.y, r9.y + temp10.y = exp2(temp9.y); + // exp r10.z, r9.z + temp10.z = exp2(temp9.z); + // add r9.xyz, r10, -c27.x + temp9.xyz = temp10.xyz + float3(-1, -1, -1); + // rcp r10.x, r6.x + temp10.x = 1.0f / temp6.x; + // rcp r10.y, r6.y + temp10.y = 1.0f / temp6.y; + // rcp r10.z, r6.z + temp10.z = 1.0f / temp6.z; + // mul r6.xyz, r9, r10 + temp6.xyz = temp9.xyz * temp10.xyz; + // mov r9.xyz, c69 + temp9.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r9.xyz, r2, r9, c68 + temp9.xyz = temp2.xyz * temp9.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r10.xyz, c71 + temp10.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r2.xyz, r2, r10, c70 + temp2.xyz = temp2.xyz * temp10.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mad r2.xyz, r2, r6, r9 + temp2.xyz = temp2.xyz * temp6.xyz + temp9.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mul r2.xyz, r2, c27[a0.x] + temp2.xyz = temp2.xyz * float3(1, 0.5, 0); + // dp3 r6.z, r2, r7 + temp6.z = dot(temp2.xyz, temp7.xyz); + // mad r1.xy, r1.y, r1.xzzw, c27.zxzw + temp1.xy = temp1.yy * temp1.xz + float2(0, 1); + // mul r3.xy, -r3.x, r1.yxzw + temp3.xy = -temp3.xx * temp1.yx; + // mul r7.xy, r3.z, r1.yxzw + temp7.xy = temp3.zz * temp1.yx; + // mov r7.w, r3.x + temp7.w = temp3.x; + // mov r1.w, r3.y + temp1.w = temp3.y; + // mov r7.z, -r1.x + temp7.z = -temp1.x; + // dp3 r3.x, r4, r7.xzww + temp3.x = dot(temp4.xyz, temp7.xzw); + // dp3 r3.y, r8.xzww, r7.xzww + temp3.y = dot(temp8.xzw, temp7.xzw); + // dp3 r3.z, r5.yzww, r7.xzww + temp3.z = dot(temp5.yzw, temp7.xzw); + // mov r1.z, r7.y + temp1.z = temp7.y; + // dp3 r6.x, r2, r3 + temp6.x = dot(temp2.xyz, temp3.xyz); + // dp3 r3.y, r8.zxww, r1.yzww + temp3.y = dot(temp8.zxw, temp1.yzw); + // dp3 r3.z, r5.zyww, r1.yzww + temp3.z = dot(temp5.zyw, temp1.yzw); + // dp3 r3.x, r4.yxzw, r1.yzww + temp3.x = dot(temp4.yxz, temp1.yzw); + // dp3 r6.y, r2, r3 + temp6.y = dot(temp2.xyz, temp3.xyz); + // add r1.xyz, r0.xyww, r6 + temp1.xyz = temp0.xyw + temp6.xyz; + // mov r1.w, c27.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c79 + o.position.x = dot(temp1, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c80 + o.position.y = dot(temp1, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c82 + temp0.y = dot(temp1, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c81 + temp0.x = dot(temp1, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.w + o.texcoord1 = temp0.x * temp0.w; + // mov r0.x, c57.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r0.x, c11[a0.w].x + temp0.y = temp0.x * float1(0.957897); + // mul r0.x, r0.x, c11[a0.z].x + temp0.x = temp0.x * float1(0.957897); + // frc r0.w, r0.y + temp0.w = frac(temp0.y); + // add r1.x, r0.y, -r0.w + temp1.x = temp0.y + -temp0.w; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r1.y, r0.y, r0.w, r1.x + temp1.y = temp0.y * temp0.w + temp1.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.w, r0.x, -r0.y + temp0.w = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r1.z, r0.x, r0.y, r0.w + temp1.z = temp0.x * temp0.y + temp0.w; + // add r0.xy, r1.yzzw, c34[a0.x].xwzw + temp0.xy = temp1.yz + float2(0, 0); + // mov r2.z, c27.z + temp2.z = float1(0); + // mul r0.w, r0.z, c66.x + temp0.w = temp0.z * Draw.SpeedMultiplier.x; + // min r1.x, r0.w, c45.x + temp1.x = min(temp0.w, expr45.x); + // mul r0.w, r0.w, c53.x + temp0.w = temp0.w * expr53.x; + // frc r2.xy, r1.x + temp2.xy = frac(temp1.x); + // add r1.xyz, r1.xxzw, -r2 + temp1.xyz = temp1.xxz + -temp2.xyz; + // add r1.yz, r1, c34[a0.x].xxww + temp1.yz = temp1.yz + float2(0, 0); + // abs r2.x, r0.w + temp2.x = abs(temp0.w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // lrp r3.x, r0.w, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.w); + // mul r0.w, r3.x, c57.y + temp0.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.w, c51.x + temp2.y = temp0.w * expr51.x; + // abs r0.w, r2.y + temp0.w = abs(temp2.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.z); + // mul r2.x, r3.x, c57.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c34[a0.x].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul r2.xy, r2, c51.x + temp2.xy = temp2.xy * expr51.xx; + // mad r1.yz, r1, c51.x, -r2.xxyw + temp1.yz = temp1.yz * expr51.xx + -temp2.xy; + // mad r1.yz, c54.x, r1, r2.xxyw + temp1.yz = expr54.xx * temp1.yz + temp2.xy; + // mad r0.xy, r0, c51.x, -r1.yzzw + temp0.xy = temp0.xy * expr51.xx + -temp1.yz; + // mad r0.xy, c55.x, r0, r1.yzzw + temp0.xy = expr55.xx * temp0.xy + temp1.yz; + // mov r1.w, c50.x + temp1.w = expr50.x; + // add r1.xy, r1.xwzw, c34[a0.x].xwzw + temp1.xy = temp1.xw + float2(0, 0); + // mad r1.xy, r1, c51.x, -r0 + temp1.xy = temp1.xy * expr51.xx + -temp0.xy; + // mad oT0.xy, c56.x, r1, r0 + o.texcoord = expr56.x * temp1 + temp0; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c60 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c61 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c62 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c63 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c64 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c58 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c59 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // lrp r1, r0.y, r3, r4 + temp1 = lerp(temp4, temp3, temp0.y); + // mad r0.x, v2.x, c37.y, c37.z + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c28.w + temp0.x = temp0.x * float1(16); + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.x, r0.x, -r0.y + temp0.x = temp0.x + -temp0.y; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.xy, c67 + temp0.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // mul oD0, r1, r0.x + o.color = temp1 * temp0.x; + // + + return o; +} + +// VS_Array_L_Shader_2 Vertex_2_0 Has PRES True +struct VS_Array_L_Shader_2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_L_Shader_2_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +VS_Array_L_Shader_2_Output VS_Array_L_Shader_2(VS_Array_L_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 44 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 44 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 50 ConstInput 2 + 1 - ConstOutput: 53 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c44.x, c1.x, (30) + expr44.x = Time.x * (30); + // add c45.x, c0.x, (-1) + expr45.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c55.x, r1.x, r0.y + expr55.x = temp1.x < temp0.y; + // mul c56.x, r0.x, r2.x + expr56.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c50.x, r2.z, r0.x + expr50.x = temp2.z + temp0.x; + // rcp c51.x, c0.x + expr51.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c54.x, r0.x, r1.x + expr54.x = temp0.x >= temp1.x; + // rcp c53.x, c0.y + expr53.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + VS_Array_L_Shader_2_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + // def c43, 8.9375, 2.0625, 1.375, 4.8125 + // def c28, 1, -0.5, 0, 16 + // def c36, 1, 6.283185, -3.141593, 1 + // def c31, 1, 0, 0.5, 0.1591549 + // def c37, 1, 0.1875, 2.75, 0 + // def c29, 0, -0.5, 0, 1.0001 + // def c27, 1, 0.5, 0, 0.1875 + // def c30, 0, 0.5, 0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, 1, 0, -0.5, 0 + // def c33, 0, 0, -0.5, 0 + // def c34, 0, 0, 0.5, 0 + // def c35, 0, 0, 0, 1 + // def c38, 0, 0, 0, 0 + // def c39, 0, 0, 0, 1 + // def c40, 1, 0, 0, 1 + // def c41, 1, 0, 0, 0 + // def c42, 0, 0, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c43 + temp0 = i.texcoord1.x * temp0.w + float4(8.9375, 2.0625, 1.375, 4.8125); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.w + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xyz, c11[a0.y] + temp0.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r1.xyz, c73 + temp1.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r1.xyz, r0, r1, c72 + temp1.xyz = temp0.xyz * temp1.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r2.xyz, r1, -c27.x + temp2.xyz = temp1.xyz + float3(-1, -1, -1); + // mul r2.xyz, r2, r2 + temp2.xyz = temp2.xyz * temp2.xyz; + // sge r2.xyz, -r2, r2 + temp2.xyz = (-temp2.xyz >= temp2.xyz) ? 1 : 0; + // lrp r3.xyz, r2, c29.w, r1 + temp3.xyz = lerp(temp1.xyz, float3(1.0001, 1.0001, 1.0001), temp2.xyz); + // log r1.x, r3.x + temp1.x = log2(temp3.x); + // log r1.y, r3.y + temp1.y = log2(temp3.y); + // log r1.z, r3.z + temp1.z = log2(temp3.z); + // mul r2.xyz, r1, c30.w + temp2.xyz = temp1.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r3.x, r2.x + temp3.x = 1.0f / temp2.x; + // rcp r3.y, r2.y + temp3.y = 1.0f / temp2.y; + // rcp r3.z, r2.z + temp3.z = 1.0f / temp2.z; + // add r0.w, -v1.w, c44.x + temp0.w = -i.texcoord.w + expr44.x; + // mul r1.xyz, r1, r0.w + temp1.xyz = temp1.xyz * temp0.www; + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // add r1.xyz, r2, -c27.x + temp1.xyz = temp2.xyz + float3(-1, -1, -1); + // mul r1.xyz, r3, r1 + temp1.xyz = temp3.xyz * temp1.xyz; + // mov r2.xyz, c69 + temp2.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r2.xyz, r0, r2, c68 + temp2.xyz = temp0.xyz * temp2.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r3.xyz, c71 + temp3.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r3.xyz, r0, r3, c70 + temp3.xyz = temp0.xyz * temp3.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mad r1.xyz, r3, r1, r2 + temp1.xyz = temp3.xyz * temp1.xyz + temp2.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.y, r1.w + addr0.y = temp1.w; + // mul r1.xyz, r1, c27[a0.y] + temp1.xyz = temp1.xyz * float3(1, 0.5, 0); + // mad r1.w, r0.x, c78.y, c78.x + temp1.w = temp0.x * GeometryUpdate.AngleDampingMin_AngleDampingSpread.y + GeometryUpdate.AngleDampingMin_AngleDampingSpread.x; + // add r2.x, r1.w, -c27.x + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.w, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c30.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.w, r1.w + temp1.w = temp0.w * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, -c27.x + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mov r2.xyz, c75 + temp2.xyz = GeometryUpdate.AngleSpreads.xyz; + // mad r2.xyz, r0, r2, c74 + temp2.xyz = temp0.xyz * temp2.xyz + GeometryUpdate.AngleMinimums.xyz; + // mov r3.xyz, c77 + temp3.xyz = GeometryUpdate.AngularRateSpreads.xyz; + // mad r0.xyz, r0, r3, c76 + temp0.xyz = temp0.xyz * temp3.xyz + GeometryUpdate.AngularRateMinimums.xyz; + // mad r0.xyz, r0, r1.w, r2 + temp0.xyz = temp0.xyz * temp1.www + temp2.xyz; + // mad r0.xyz, r0, c31.w, c31.z + temp0.xyz = temp0.xyz * float3(0.15915494, 0.15915494, 0.15915494) + float3(0.5, 0.5, 0.5); + // frc r0.xyz, r0 + temp0.xyz = frac(temp0.xyz); + // mad r0.xyz, r0, c36.y, c36.z + temp0.xyz = temp0.xyz * float3(6.2831855, 6.2831855, 6.2831855) + float3(-3.1415927, -3.1415927, -3.1415927); + // sincos r2.xy, r0.x, c0, c1 + temp2.xy = float2(cos(temp0.x), sin(temp0.x)); + // sincos r3.xy, r0.z, c0, c1 + temp3.xy = float2(cos(temp0.z), sin(temp0.z)); + // sincos r4.xy, r0.y, c0, c1 + temp4.xy = float2(cos(temp0.y), sin(temp0.y)); + // mul r5, r2.yyxx, r3.xyxy + temp5 = temp2.yyxx * temp3.xyxy; + // mul r0.yz, r2.xyxw, r4.x + temp0.yz = temp2.yx * temp4.xx; + // mul r2.xy, r3, r4.x + temp2.xy = temp3.xy * temp4.xx; + // mad r3.xy, r4.y, r5.xwzw, -r5.wxzw + temp3.xy = temp4.yy * temp5.xw + -temp5.wx; + // mad r5.xy, r4.y, r5.yzzw, r5.zyzw + temp5.xy = temp4.yy * temp5.yz + temp5.zy; + // mov r0.x, -r4.y + temp0.x = -temp4.y; + // mov r2.z, r3.x + temp2.z = temp3.x; + // mov r5.w, r3.y + temp5.w = temp3.y; + // mov r2.w, r5.y + temp2.w = temp5.y; + // dp3 r2.x, r1, r2.xzww + temp2.x = dot(temp1.xyz, temp2.xzw); + // mov r5.z, r2.y + temp5.z = temp2.y; + // dp3 r2.z, r1.yxzw, r5.xzww + temp2.z = dot(temp1.yxz, temp5.xzw); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // mov r0.xy, c85 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, -c27.x + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.w, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c30.w + temp0.y = temp0.x * float1(0.6931472); + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, -c27.x + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r0.y, r0.w, c27.y + temp0.y = temp0.w * float1(0.5); + // mov r1.xyz, c83 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.y, r1, c84 + temp1.xyz = temp0.yyy * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.w, r1 + temp1.xyz = temp0.www * temp1.xyz; + // mad r0.xyz, v1, r0.x, r1 + temp0.xyz = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // add r0.xyz, r0, v0 + temp0.xyz = temp0.xyz + i.position.xyz; + // add r1.xyz, r2.xzww, r0 + temp1.xyz = temp2.xzw + temp0.xyz; + // mov r1.w, c27.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c79 + o.position.x = dot(temp1, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c80 + o.position.y = dot(temp1, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c82 + temp0.y = dot(temp1, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c81 + temp0.x = dot(temp1, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mov r0.x, c57.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r0.x, c11[a0.w].x + temp0.y = temp0.x * float1(0.957897); + // mul r0.x, r0.x, c11[a0.z].x + temp0.x = temp0.x * float1(0.957897); + // frc r0.z, r0.y + temp0.z = frac(temp0.y); + // add r1.x, r0.y, -r0.z + temp1.x = temp0.y + -temp0.z; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r0.z, -r0.z, r0.z + temp0.z = (-temp0.z < temp0.z) ? 1 : 0; + // mad r1.y, r0.y, r0.z, r1.x + temp1.y = temp0.y * temp0.z + temp1.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r1.z, r0.x, r0.y, r0.z + temp1.z = temp0.x * temp0.y + temp0.z; + // add r0.xy, r1.yzzw, c34[a0.y].xwzw + temp0.xy = temp1.yz + float2(0, 0); + // mov r2.z, c27.z + temp2.z = float1(0); + // mul r0.z, r0.w, c66.x + temp0.z = temp0.w * Draw.SpeedMultiplier.x; + // min r1.x, r0.z, c45.x + temp1.x = min(temp0.z, expr45.x); + // mul r0.z, r0.z, c53.x + temp0.z = temp0.z * expr53.x; + // frc r2.xy, r1.x + temp2.xy = frac(temp1.x); + // add r1.xyz, r1.xxzw, -r2 + temp1.xyz = temp1.xxz + -temp2.xyz; + // add r1.yz, r1, c34[a0.y].xxww + temp1.yz = temp1.yz + float2(0, 0); + // abs r2.x, r0.z + temp2.x = abs(temp0.z); + // sge r0.z, r0.z, -r0.z + temp0.z = (temp0.z >= -temp0.z) ? 1 : 0; + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // lrp r3.x, r0.z, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.z); + // mul r0.z, r3.x, c57.y + temp0.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.z, c51.x + temp2.y = temp0.z * expr51.x; + // abs r0.z, r2.y + temp0.z = abs(temp2.y); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.z, -r0.z + temp3.x = lerp(-temp0.z, temp0.z, temp2.z); + // mul r2.x, r3.x, c57.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c34[a0.y].xwzw + temp2.xy = temp2.xy + float2(0, 0); + // mul r2.xy, r2, c51.x + temp2.xy = temp2.xy * expr51.xx; + // mad r1.yz, r1, c51.x, -r2.xxyw + temp1.yz = temp1.yz * expr51.xx + -temp2.xy; + // mad r1.yz, c54.x, r1, r2.xxyw + temp1.yz = expr54.xx * temp1.yz + temp2.xy; + // mad r0.xy, r0, c51.x, -r1.yzzw + temp0.xy = temp0.xy * expr51.xx + -temp1.yz; + // mad r0.xy, c55.x, r0, r1.yzzw + temp0.xy = expr55.xx * temp0.xy + temp1.yz; + // mov r1.w, c50.x + temp1.w = expr50.x; + // add r1.xy, r1.xwzw, c34[a0.y].xwzw + temp1.xy = temp1.xw + float2(0, 0); + // mad r1.xy, r1, c51.x, -r0 + temp1.xy = temp1.xy * expr51.xx + -temp0.xy; + // mad oT0.xy, c56.x, r1, r0 + o.texcoord = expr56.x * temp1 + temp0; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // mov r1, c60 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c61 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c62 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c63 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c64 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c58 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c59 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // lrp r1, r0.y, r3, r4 + temp1 = lerp(temp4, temp3, temp0.y); + // mad r0.x, v2.x, c37.y, c37.z + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c28.w + temp0.x = temp0.x * float1(16); + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.x, r0.x, -r0.y + temp0.x = temp0.x + -temp0.y; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.xy, c67 + temp0.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // mul oD0, r1, r0.x + o.color = temp1 * temp0.x; + // + + return o; +} + +VertexShader VS_Array_L[3] = { + compile vs_2_0 VS_Array_L_Shader_0(), // 43 + compile vs_2_0 VS_Array_L_Shader_1(), // 44 + compile vs_2_0 VS_Array_L_Shader_2(), // 45 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord2 : TEXCOORD2) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t2.x + // mov r0, t2.x + temp0 = texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 52 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 53 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 54 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 55 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 56 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 57 +}; +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader23 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader23_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader23_Output +{ + float4 position : POSITION; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +_CreateShadowMap_VertexShader23_Output _CreateShadowMap_VertexShader23(_CreateShadowMap_VertexShader23_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + _CreateShadowMap_VertexShader23_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + float3 temp5, temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.w, c27[a0.y].x, -r2.y, r1.w + temp1.w = float1(-0.5) * -temp2.y + temp1.w; + // mov r2.xy, c27[a0.y] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c37, c37.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // mul r3.xyz, r1.w, c79 + temp3.xyz = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r1.yzw, r1.y, c78.xxyz, r3.xxyz + temp1.yzw = temp1.yyy * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c66 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c65 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.z, r3.z, c28.w + temp2.z = temp3.z + float1(-1); + // mul r2.z, r2.z, r2.z + temp2.z = temp2.z * temp2.z; + // sge r2.z, -r2.z, r2.z + temp2.z = (-temp2.z >= temp2.z) ? 1 : 0; + // lrp r4.x, r2.z, c29.z, r3.z + temp4.x = lerp(temp3.z, float1(1.0001), temp2.z); + // log r2.z, r4.x + temp2.z = log2(temp4.x); + // mul r2.w, r2.z, c29.w + temp2.w = temp2.z * float1(0.6931472); + // mul r2.z, r0.z, r2.z + temp2.z = temp0.z * temp2.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r2.z, r2.z + temp2.z = exp2(temp2.z); + // add r2.z, r2.z, c28.w + temp2.z = temp2.z + float1(-1); + // mul r2.z, r2.w, r2.z + temp2.z = temp2.w * temp2.z; + // mad r2.z, r3.y, r2.z, r3.x + temp2.z = temp3.y * temp2.z + temp3.x; + // mad r3.xyz, r2.z, r1.yzww, r0.xyww + temp3.xyz = temp2.zzz * temp1.yzw + temp0.xyw; + // mov r3.w, -c28.w + temp3.w = float1(1); + // dp4 oPos.x, r3, c71 + o.position.x = dot(temp3, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r3, c72 + o.position.y = dot(temp3, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r3, c74 + temp0.y = dot(temp3, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r3, c73 + temp0.x = dot(temp3, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r3.x, r0.x, c40.x + temp3.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r2.z, r1.y, r0.w, -r0.w + temp2.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r2.z, c54.x + temp0.x = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r2, r0 + temp0.xy = temp2.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r3.w, r1.x, r1.y, r1.z + temp3.w = temp1.x * temp1.y + temp1.z; + // mov r1.w, c27.z + temp1.w = float1(0); + // mul r2.z, r0.z, c63.x + temp2.z = temp0.z * Draw.SpeedMultiplier.x; + // min r3.y, r2.z, c40.x + temp3.y = min(temp2.z, expr40.x); + // frc r1.xyz, r3.yxxw + temp1.xyz = frac(temp3.yxx); + // add r1.zw, r3.xyxw, -r1 + temp1.zw = temp3.xw + -temp1.zw; + // add r4.xz, r3.yyxw, -r1.xyyw + temp4.xz = temp3.yx + -temp1.xy; + // add r1.xy, r2, r1.zwzw + temp1.xy = temp2.xy + temp1.zw; + // mul r1.xy, r1, c46.x + temp1.xy = temp1.xy * expr46.xx; + // frc r0.w, r2.z + temp0.w = frac(temp2.z); + // mul r2.z, r2.z, c50.x + temp2.z = temp2.z * expr50.x; + // frc r1.z, r3.y + temp1.z = frac(temp3.y); + // lrp r5.xyz, c51.x, r1, r0.xyww + temp5.xyz = lerp(temp0.xyw, temp1.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xy, r0 + temp1.xy = frac(temp0.xy); + // add r0.xy, r0, -r1 + temp0.xy = temp0.xy + -temp1.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r1.xy, c64 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.x, r0.x, -r0.w + temp1.x = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r3.z, r0.x, r0.w, r1.x + temp3.z = temp0.x * temp0.w + temp1.x; + // add r0.xw, r2.xyzy, r3.zyzw + temp0.xw = temp2.xy + temp3.zw; + // mul r6.xy, r0.xwzw, c46.x + temp6.xy = temp0.xw * expr46.xx; + // mov r6.z, c27.z + temp6.z = float1(0); + // lrp r7.xyz, c52.x, r6, r5 + temp7.xyz = lerp(temp5.xyz, temp6.xyz, expr52.xxx); + // mov r4.w, c48.x + temp4.w = expr48.x; + // add r1.xy, r2, r4.zwzw + temp1.xy = temp2.xy + temp4.zw; + // mul r5.xy, r1, c46.x + temp5.xy = temp1.xy * expr46.xx; + // mov r5.z, r1.z + temp5.z = temp1.z; + // add r5.xyz, -r7, r5 + temp5.xyz = -temp7.xyz + temp5.xyz; + // mad oT3.xyz, c53.x, r5, r7 + o.texcoord3 = expr53.x * temp5 + temp7; + // mov r1.w, c27.z + temp1.w = float1(0); + // add r1.xy, r3.ywzw, -r1.zwzw + temp1.xy = temp3.yw + -temp1.zw; + // add r1.xy, r2, r1 + temp1.xy = temp2.xy + temp1.xy; + // abs r1.z, r2.z + temp1.z = abs(temp2.z); + // sge r1.w, r2.z, -r2.z + temp1.w = (temp2.z >= -temp2.z) ? 1 : 0; + // frc r1.z, r1.z + temp1.z = frac(temp1.z); + // lrp r2.z, r1.w, r1.z, -r1.z + temp2.z = lerp(-temp1.z, temp1.z, temp1.w); + // mul r1.z, r2.z, c54.y + temp1.z = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.z, r1.w + temp2.z = abs(temp1.w); + // frc r2.z, r2.z + temp2.z = frac(temp2.z); + // sge r2.w, r1.w, -r1.w + temp2.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r1.z, r3.x, c54.x + temp1.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1 + temp2.zw = frac(temp1.zw); + // add r1.zw, r1, -r2 + temp1.zw = temp1.zw + -temp2.zw; + // add r1.zw, r2.xyxy, r1 + temp1.zw = temp2.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r4.y, c45.x + temp4.y = expr45.x; + // add r1.xy, r2, r4 + temp1.xy = temp2.xy + temp4.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, c27.z + o.texcoord1 = float4(0, 0, 0, 0); + // + + return o; +} + +// Default_L_PixelShader24 Pixel_2_0 Has PRES False +struct Default_L_PixelShader24_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 Default_L_PixelShader24(Default_L_PixelShader24_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_L_Expression25 Expression_2_0 Has PRES False +float Default_L_Expression25() +{ + float1 expr0; + // add c0.x, c11.x, (-1) + expr0.x = GeometryUpdate.RotationType.x + (-1); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c8.x, (-3) + temp0.x = Draw.ShaderType.x + (-3); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, (-2) + temp0.x = temp2.x + (-2); + // mul r1.x, r0.x, c9.x + temp1.x = temp0.x * ShouldDrawParticleSoft.x; + // add r0.x, r1.x, (2) + temp0.x = temp1.x + (2); + // mul c0.x, r0.x, (3) + expr0.x = temp0.x * (3); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // add c0.x, c11.x, (-1) + expr0.x = GeometryUpdate.RotationType.x + (-1); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array_H[Default_Expression27()]; // 47 + PixelShader = PS_Array_H[Default_Expression26()]; // 48 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass P0 + { + VertexShader = VS_Array_L[Default_L_Expression25()]; // 50 + PixelShader = compile ps_2_0 Default_L_PixelShader24(); // 51 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader23(); // 59 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 60 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/gpuparticleperpendicularcenter.fx b/gpuparticleperpendicularcenter.fx new file mode 100644 index 0000000..f5cb9c2 --- /dev/null +++ b/gpuparticleperpendicularcenter.fx @@ -0,0 +1,4671 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_3_0, c64) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_3_0, c86) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c65) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTextureSampler ; // 8 +sampler2D ParticleTextureSamplerSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 15 +sampler2D NextFrameTextureSamplerSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture DepthTexture ; // 22 +sampler2D DepthTextureSampler : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 24 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +bool ShouldDrawParticleSoft ; +column_major float4x4 WorldView : WorldView : register(vs_3_0, c124); +column_major float4x4 Projection : Projection : register(vs_3_0, c128); +column_major float4x4 WorldViewProjection : WorldViewProjection; +column_major float4x3 View : View : register(vs_2_0, c78); +row_major float4x4 ProjectionI : ProjectionInverse; +float Time : Time; +struct +{ + float3 StartSizeMinimums; + float3 StartSizeSpreads; + float3 SizeRateMinimums; + float3 SizeRateSpreads; + float3 SizeDampingMinimums; + float3 SizeDampingSpreads; + float3 AngleMinimums; + float3 AngleSpreads; + float3 AngularRateMinimums; + float3 AngularRateSpreads; + float2 AngleDampingMin_AngleDampingSpread; + int RotationType; +} GeometryUpdate : register(vs_2_0, c69) : register(vs_3_0, c75) ; +// VS_Array_H_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_H_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_H_Shader_0_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +VS_Array_H_Shader_0_Output VS_Array_H_Shader_0(VS_Array_H_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 45 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 45 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 52 ConstInput 2 + 1 - ConstOutput: 55 ConstInput 1 + 2 - ConstOutput: 57 ConstInput 1 + 3 - ConstOutput: 61 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + float4 expr61; + float4 expr62; + float4 expr63; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c45.x, c1.x, (30) + expr45.x = Time.x * (30); + // add c46.x, c0.x, (-1) + expr46.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c62.x, c0.y + expr62.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c52.x, r1.x + expr52.x = temp1.x; + // mov c55.x, r1.x + expr55.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c53.x, r0.x + expr53.x = temp0.x; + // mov c57.x, r0.x + expr57.x = temp0.x; + // mov c61.x, r0.x + expr61.x = temp0.x; + // mov c63.x, r0.x + expr63.x = temp0.x; + } + + VS_Array_H_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 addr0; + // def c44, 0.1875, 8.9375, 2.0625, 2.75 + // def c27, 0.5, 0.5, -0, 16 + // def c28, 0.5, -0.5, -0, -1 + // def c31, 0.5, -0, 0.5, 0.6666667 + // def c36, 0, 1, 0.1875, 1.375 + // def c37, 1, 1, 0.1875, 4.8125 + // def c29, -0.5, -0.5, -0, 1.0001 + // def c30, -0.5, 0.5, -0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, 0.5, -0, -0.5, 0 + // def c33, -0.5, -0, -0.5, 0 + // def c34, -0.5, -0, 0.5, 0 + // def c35, 0, 0, 0, 0 + // def c38, 1, 0, 0, 0 + // def c39, 0, 0, 0, 0 + // def c40, 0, 1, 0, 0 + // def c41, 1, 1, 0, 0 + // def c42, 1, 0, 0, 0 + // def c43, 0, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // add r0.x, c45.x, -v1.w + temp0.x = expr45.x + -i.texcoord.w; + // mad r0.yzw, v2.x, c44.x, c44 + temp0.yzw = i.texcoord1.xxx * float3(0.1875, 0.1875, 0.1875) + float3(8.9375, 2.0625, 2.75); + // frc r0.yzw, r0 + temp0.yzw = frac(temp0.yzw); + // mul r0.yzw, r0, c27.w + temp0.yzw = temp0.yzw * float3(16, 16, 16); + // frc r1.xyz, r0.yzww + temp1.xyz = frac(temp0.yzw); + // add r0.yzw, r0, -r1.xxyz + temp0.yzw = temp0.yzw + -temp1.xyz; + // mova a0.xyz, r0.yzww + addr0.xyz = temp0.yzw; + // mov r1.xy, c126 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r0.y, c11[a0.x].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // add r0.z, r0.y, c28.w + temp0.z = temp0.y + float1(-1); + // sge r0.z, -r0_abs.z, r0_abs.z + temp0.z = (r0.z == 0) ? 1 : 0; + // lrp r1.x, r0.z, c29.w, r0.y + temp1.x = lerp(temp0.y, float1(1.0001), temp0.z); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // mul r0.z, r0.x, r0.y + temp0.z = temp0.x * temp0.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c28.w + temp0.z = temp0.z + float1(-1); + // mul r0.y, r0.y, c30.w + temp0.y = temp0.y * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mul r0.z, r0.x, c27.x + temp0.z = temp0.x * float1(0.5); + // mov r1.xyz, c124 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.z, r1, c125 + temp1.xyz = temp0.zzz * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mad r0.yzw, v1.xxyz, r0.y, r1.xxyz + temp0.yzw = i.texcoord.xyz * temp0.yyy + temp1.xyz; + // add r0.yzw, r0, v0.xxyz + temp0.yzw = temp0.yzw + i.position.xyz; + // mov r1.xyz, c11[a0.y] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c76 + temp2.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r2.xyz, r1, r2, c75 + temp2.xyz = temp1.xyz * temp2.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r3.xyz, c78 + temp3.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r3.xyz, r1, r3, c77 + temp3.xyz = temp1.xyz * temp3.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mov r4.xyz, c80 + temp4.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r1.xyz, r1, r4, c79 + temp1.xyz = temp1.xyz * temp4.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r4.xyz, r1, c28.w + temp4.xyz = temp1.xyz + float3(-1, -1, -1); + // sge r4.xyz, -r4_abs, r4_abs + temp4.xyz = (r4.xyz == 0) ? 1 : 0; + // lrp r5.xyz, r4, c29.w, r1 + temp5.xyz = lerp(temp1.xyz, float3(1.0001, 1.0001, 1.0001), temp4.xyz); + // log r1.x, r5.x + temp1.x = log2(temp5.x); + // log r1.y, r5.y + temp1.y = log2(temp5.y); + // log r1.z, r5.z + temp1.z = log2(temp5.z); + // mul r4.xyz, r0.x, r1 + temp4.xyz = temp0.xxx * temp1.xyz; + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // add r4.xyz, r5, c28.w + temp4.xyz = temp5.xyz + float3(-1, -1, -1); + // mul r1.xyz, r1, c30.w + temp1.xyz = temp1.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r5.x, r1.x + temp5.x = 1.0f / temp1.x; + // rcp r5.y, r1.y + temp5.y = 1.0f / temp1.y; + // rcp r5.z, r1.z + temp5.z = 1.0f / temp1.z; + // mul r1.xyz, r4, r5 + temp1.xyz = temp4.xyz * temp5.xyz; + // mad r1.xyz, r3, r1, r2 + temp1.xyz = temp3.xyz * temp1.xyz + temp2.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mad r2.xyz, c27[a0.x], r1, r0.yzww + temp2.xyz = float3(0.5, 0.5, -0) * temp1.xyz + temp0.yzw; + // mul r0.y, r1.x, c31.w + temp0.y = temp1.x * float1(0.6666667); + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 r1.x, r2, c81 + temp1.x = dot(temp2, (WorldView._m00_m10_m20_m30)); + // dp4 r1.y, r2, c82 + temp1.y = dot(temp2, (WorldView._m01_m11_m21_m31)); + // dp4 r1.z, r2, c83 + temp1.z = dot(temp2, (WorldView._m02_m12_m22_m32)); + // dp4 r1.w, r2, c84 + temp1.w = dot(temp2, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r1.z, r0.y + o.texcoord5.x = temp1.z * temp0.y; + // dp4 r2.x, r1, c85 + temp2.x = dot(temp1, (Projection._m00_m10_m20_m30)); + // dp4 r2.y, r1, c86 + temp2.y = dot(temp1, (Projection._m01_m11_m21_m31)); + // dp4 r2.z, r1, c87 + temp2.z = dot(temp1, (Projection._m02_m12_m22_m32)); + // dp4 r2.w, r1, c88 + temp2.w = dot(temp1, (Projection._m03_m13_m23_m33)); + // rcp r0.z, r2.w + temp0.z = 1.0f / temp2.w; + // mul o4.x, r2.z, r0.z + o.texcoord2 = temp2.z * temp0.z; + // mul r0.z, r0.x, c73.x + temp0.z = temp0.x * Draw.SpeedMultiplier.x; + // min r1.y, r0.z, c46.x + temp1.y = min(temp0.z, expr46.x); + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.w, r0.x, c73.x, -r0.w + temp0.w = temp0.x * Draw.SpeedMultiplier.x + -temp0.w; + // min r1.x, r0.w, c46.x + temp1.x = min(temp0.w, expr46.x); + // if b0 + if (Error ConstBool0Error) { + // frc r3.xy, r1.yxzw + temp3.xy = frac(temp1.yx); + // add r4.xz, r1.yyxw, -r3.xyyw + temp4.xz = temp1.yx + -temp3.xy; + // mov r4.y, c52.x + temp4.y = expr52.x; + // add r3.yz, r4.xxyw, c35[a0.x].xxyw + temp3.yz = temp4.xy + float2(0, 0); + // mul o1.xy, r3.yzzw, c53.x + o.texcoord = temp3.yzzw * expr53.x; + // mov r4.w, c55.x + temp4.w = expr55.x; + // add r3.yz, r4.xzww, c35[a0.x].xxyw + temp3.yz = temp4.zw + float2(0, 0); + // mul o5.xy, r3.yzzw, c53.x + o.texcoord3.xy = temp3.yz * expr53.xx; + // mov o5.z, r3.x + o.texcoord3.z = temp3.x; + // else + } else { + // mad r3.x, v2.x, c36.z, c36.w + temp3.x = i.texcoord1.x * float1(0.1875) + float1(1.375); + // frc r3.x, r3.x + temp3.x = frac(temp3.x); + // mul r3.x, r3.x, c27.w + temp3.x = temp3.x * float1(16); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.x, r3.x, -r3.y + temp3.x = temp3.x + -temp3.y; + // mova a0.y, r3.x + addr0.y = temp3.x; + // mov r3.x, c64.x + temp3.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r3.y, r3.x, c11[a0.y].x + temp3.y = temp3.x * float1(0.957897); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.w, r3.y, -r3.z + temp3.w = temp3.y + -temp3.z; + // slt r3.y, r3.y, -r3.y + temp3.y = (temp3.y < -temp3.y) ? 1 : 0; + // slt r3.z, -r3.z, r3.z + temp3.z = (-temp3.z < temp3.z) ? 1 : 0; + // mad r1.w, r3.y, r3.z, r3.w + temp1.w = temp3.y * temp3.z + temp3.w; + // if b1 + if (Error ConstBool1Error) { + // mad r3.y, v2.x, c37.z, c37.w + temp3.y = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r3.y, r3.y + temp3.y = frac(temp3.y); + // mul r3.y, r3.y, c27.w + temp3.y = temp3.y * float1(16); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.y, r3.y, -r3.z + temp3.y = temp3.y + -temp3.z; + // mova a0.y, r3.y + addr0.y = temp3.y; + // mul r3.x, r3.x, c11[a0.y].x + temp3.x = temp3.x * float1(0.957897); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.z, r3.x, -r3.y + temp3.z = temp3.x + -temp3.y; + // slt r3.x, r3.x, -r3.x + temp3.x = (temp3.x < -temp3.x) ? 1 : 0; + // slt r3.y, -r3.y, r3.y + temp3.y = (-temp3.y < temp3.y) ? 1 : 0; + // mad r1.z, r3.x, r3.y, r3.z + temp1.z = temp3.x * temp3.y + temp3.z; + // add r3.xy, r1.zwzw, c35[a0.x] + temp3.xy = temp1.zw + float2(0, 0); + // mul r3.xy, r3, c57.x + temp3.xy = temp3.xy * expr57.xx; + // mov o5.z, -c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r3 + o.texcoord3.xy = temp3.xy; + // mov o1.xy, r3 + o.texcoord = temp3; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r3.z, r1.y + temp3.z = frac(temp1.y); + // mov r3.w, -c27.z + temp3.w = float1(0); + // add r1.yz, r1.xyww, -r3.xzww + temp1.yz = temp1.yw + -temp3.zw; + // add r1.yz, r1, c35[a0.x].xxyw + temp1.yz = temp1.yz + float2(0, 0); + // mul o1.xy, r1.yzzw, c61.x + o.texcoord = temp1.yzzw * expr61.x; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // mov r1.z, -c27.z + temp1.z = float1(0); + // add r1.xy, r1.xwzw, -r1.yzzw + temp1.xy = temp1.xw + -temp1.yz; + // add r1.xy, r1, c35[a0.x] + temp1.xy = temp1.xy + float2(0, 0); + // mul r3.xy, r1, c61.x + temp3.xy = temp1.xy * expr61.xx; + // mov o5.xyz, r3 + o.texcoord3 = temp3; + // else + } else { + // mul r1.x, r0.z, c62.x + temp1.x = temp0.z * expr62.x; + // frc r1.y, r1_abs.x + temp1.y = frac(abs(temp1).x); + // sge r1.x, r1.x, -r1.x + temp1.x = (temp1.x >= -temp1.x) ? 1 : 0; + // lrp r3.x, r1.x, r1.y, -r1.y + temp3.x = lerp(-temp1.y, temp1.y, temp1.x); + // mul r1.x, r3.x, c64.y + temp1.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.y, r1.x, c63.x + temp1.y = temp1.x * expr63.x; + // frc r1.z, r1_abs.y + temp1.z = frac(abs(temp1).y); + // sge r1.w, r1.y, -r1.y + temp1.w = (temp1.y >= -temp1.y) ? 1 : 0; + // lrp r3.x, r1.w, r1.z, -r1.z + temp3.x = lerp(-temp1.z, temp1.z, temp1.w); + // mul r1.x, r3.x, c64.x + temp1.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.zw, r1.xyxy + temp1.zw = frac(temp1.xy); + // add r1.xy, r1, -r1.zwzw + temp1.xy = temp1.xy + -temp1.zw; + // add r1.xy, r1, c35[a0.x] + temp1.xy = temp1.xy + float2(0, 0); + // mul o1.xy, r1, c63.x + o.texcoord = temp1 * expr63.x; + // mul r0.w, r0.w, c62.x + temp0.w = temp0.w * expr62.x; + // frc r1.x, r0_abs.w + temp1.x = frac(abs(temp0).w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r3.x, r0.w, r1.x, -r1.x + temp3.x = lerp(-temp1.x, temp1.x, temp0.w); + // mul r0.w, r3.x, c64.y + temp0.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.y, r0.w, c63.x + temp1.y = temp0.w * expr63.x; + // frc r0.w, r1_abs.y + temp0.w = frac(abs(temp1).y); + // sge r1.z, r1.y, -r1.y + temp1.z = (temp1.y >= -temp1.y) ? 1 : 0; + // lrp r3.x, r1.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp1.z); + // mul r1.x, r3.x, c64.x + temp1.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.zw, r1.xyxy + temp1.zw = frac(temp1.xy); + // add r1.xy, r1, -r1.zwzw + temp1.xy = temp1.xy + -temp1.zw; + // add r1.xy, r1, c35[a0.x] + temp1.xy = temp1.xy + float2(0, 0); + // mul o5.xy, r1, c63.x + o.texcoord3.xy = temp1.xy * expr63.xx; + // frc o5.z, r0.z + o.texcoord3.z = frac(temp0.z); + // endif + } + // endif + } + // endif + } + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // mov r1, c65 + temp1 = Draw.ColorAnimationFunctions[0]; + // mad r1, r1, r0.x, c66 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[1]; + // slt r0.zw, r0.x, c71.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c67 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.x, c68 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r4, c69 + temp4 = Draw.ColorAnimationFunctions[4]; + // mad r4, r4, r0.x, c70 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[5]; + // lrp r5, r0.w, r3, r4 + temp5 = lerp(temp4, temp3, temp0.w); + // lrp r3, r0.z, r1, r5 + temp3 = lerp(temp5, temp1, temp0.z); + // mov r1.xy, c74 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.z].x, r1.y, r1.x + temp0.x = float1(0.957897) * temp1.y + temp1.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r2 + o.position = temp2; + // mov o3.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r2 + o.texcoord4 = temp2; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +// VS_Array_H_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_H_Shader_1_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_H_Shader_1_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +VS_Array_H_Shader_1_Output VS_Array_H_Shader_1(VS_Array_H_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 45 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 45 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 52 ConstInput 2 + 1 - ConstOutput: 55 ConstInput 1 + 2 - ConstOutput: 57 ConstInput 1 + 3 - ConstOutput: 61 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + float4 expr61; + float4 expr62; + float4 expr63; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c45.x, c1.x, (30) + expr45.x = Time.x * (30); + // add c46.x, c0.x, (-1) + expr46.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c62.x, c0.y + expr62.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c52.x, r1.x + expr52.x = temp1.x; + // mov c55.x, r1.x + expr55.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c53.x, r0.x + expr53.x = temp0.x; + // mov c57.x, r0.x + expr57.x = temp0.x; + // mov c61.x, r0.x + expr61.x = temp0.x; + // mov c63.x, r0.x + expr63.x = temp0.x; + } + + VS_Array_H_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp7, temp9; + float3 addr0, temp6, temp8, temp10; + // def c44, 0.1875, 8.9375, 2.0625, 2.75 + // def c27, 0.5, 0.5, -0, 16 + // def c28, 0.5, -0.5, -0, -1 + // def c31, 0.5, -0, 0.5, 0.1591549 + // def c36, 0, 1, 6.283185, -3.141593 + // def c32, 0.5, -0, -0.5, 0.001 + // def c33, -0.5, -0, -0.5, 0.6666667 + // def c37, 1, 1, 0.1875, 1.375 + // def c38, 1, 0, 0.1875, 4.8125 + // def c29, -0.5, -0.5, -0, 1.0001 + // def c30, -0.5, 0.5, -0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c34, -0.5, -0, 0.5, 0 + // def c35, 0, 0, 0, 0 + // def c39, 0, 0, 0, 0 + // def c40, 0, 1, 0, 0 + // def c41, 1, 1, 0, 0 + // def c42, 1, 0, 0, 0 + // def c43, 0, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // add r0.x, c45.x, -v1.w + temp0.x = expr45.x + -i.texcoord.w; + // mad r0.yzw, v2.x, c44.x, c44 + temp0.yzw = i.texcoord1.xxx * float3(0.1875, 0.1875, 0.1875) + float3(8.9375, 2.0625, 2.75); + // frc r0.yzw, r0 + temp0.yzw = frac(temp0.yzw); + // mul r0.yzw, r0, c27.w + temp0.yzw = temp0.yzw * float3(16, 16, 16); + // frc r1.xyz, r0.yzww + temp1.xyz = frac(temp0.yzw); + // add r0.yzw, r0, -r1.xxyz + temp0.yzw = temp0.yzw + -temp1.xyz; + // mova a0.xyz, r0.yzww + addr0.xyz = temp0.yzw; + // mov r1.xy, c88 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r0.y, c11[a0.x].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // add r0.z, r0.y, c28.w + temp0.z = temp0.y + float1(-1); + // sge r0.z, -r0_abs.z, r0_abs.z + temp0.z = (r0.z == 0) ? 1 : 0; + // lrp r1.x, r0.z, c29.w, r0.y + temp1.x = lerp(temp0.y, float1(1.0001), temp0.z); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // mul r0.z, r0.x, r0.y + temp0.z = temp0.x * temp0.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c28.w + temp0.z = temp0.z + float1(-1); + // mul r0.y, r0.y, c30.w + temp0.y = temp0.y * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mul r0.z, r0.x, c27.x + temp0.z = temp0.x * float1(0.5); + // mov r1.xyz, c86 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.z, r1, c87 + temp1.xyz = temp0.zzz * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mad r0.yzw, v1.xxyz, r0.y, r1.xxyz + temp0.yzw = i.texcoord.xyz * temp0.yyy + temp1.xyz; + // add r1.xyz, r0.yzww, v0 + temp1.xyz = temp0.yzw + i.position.xyz; + // mov r2.xyz, c11[a0.y] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c76 + temp3.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r3.xyz, r2, r3, c75 + temp3.xyz = temp2.xyz * temp3.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r4.xyz, c78 + temp4.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r4.xyz, r2, r4, c77 + temp4.xyz = temp2.xyz * temp4.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mov r5.xyz, c80 + temp5.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r5.xyz, r2, r5, c79 + temp5.xyz = temp2.xyz * temp5.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r6.xyz, r5, c28.w + temp6.xyz = temp5.xyz + float3(-1, -1, -1); + // sge r6.xyz, -r6_abs, r6_abs + temp6.xyz = (r6.xyz == 0) ? 1 : 0; + // lrp r7.xyz, r6, c29.w, r5 + temp7.xyz = lerp(temp5.xyz, float3(1.0001, 1.0001, 1.0001), temp6.xyz); + // log r5.x, r7.x + temp5.x = log2(temp7.x); + // log r5.y, r7.y + temp5.y = log2(temp7.y); + // log r5.z, r7.z + temp5.z = log2(temp7.z); + // mul r6.xyz, r0.x, r5 + temp6.xyz = temp0.xxx * temp5.xyz; + // exp r7.x, r6.x + temp7.x = exp2(temp6.x); + // exp r7.y, r6.y + temp7.y = exp2(temp6.y); + // exp r7.z, r6.z + temp7.z = exp2(temp6.z); + // add r6.xyz, r7, c28.w + temp6.xyz = temp7.xyz + float3(-1, -1, -1); + // mul r5.xyz, r5, c30.w + temp5.xyz = temp5.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r7.x, r5.x + temp7.x = 1.0f / temp5.x; + // rcp r7.y, r5.y + temp7.y = 1.0f / temp5.y; + // rcp r7.z, r5.z + temp7.z = 1.0f / temp5.z; + // mul r5.xyz, r6, r7 + temp5.xyz = temp6.xyz * temp7.xyz; + // mad r3.xyz, r4, r5, r3 + temp3.xyz = temp4.xyz * temp5.xyz + temp3.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mul r3.yzw, r3.xxyz, c27[a0.x].xxyz + temp3.yzw = temp3.xyz * float3(0.5, 0.5, -0); + // mov r4.xyz, c82 + temp4.xyz = GeometryUpdate.AngleSpreads.xyz; + // mad r4.xyz, r2, r4, c81 + temp4.xyz = temp2.xyz * temp4.xyz + GeometryUpdate.AngleMinimums.xyz; + // mov r5.xyz, c84 + temp5.xyz = GeometryUpdate.AngularRateSpreads.xyz; + // mad r2.yzw, r2.xxyz, r5.xxyz, c83.xxyz + temp2.yzw = temp2.xyz * temp5.xyz + GeometryUpdate.AngularRateMinimums.xyz; + // mad r1.w, r2.x, c85.y, c85.x + temp1.w = temp2.x * GeometryUpdate.AngleDampingMin_AngleDampingSpread.y + GeometryUpdate.AngleDampingMin_AngleDampingSpread.x; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // sge r2.x, -r2_abs.x, r2_abs.x + temp2.x = (r2.x == 0) ? 1 : 0; + // lrp r4.w, r2.x, c29.w, r1.w + temp4.w = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r4.w + temp1.w = log2(temp4.w); + // mul r2.x, r0.x, r1.w + temp2.x = temp0.x * temp1.w; + // exp r2.x, r2.x + temp2.x = exp2(temp2.x); + // add r2.x, r2.x, c28.w + temp2.x = temp2.x + float1(-1); + // mul r1.w, r1.w, c30.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r2.xyz, r2.yzww, r1.w, r4 + temp2.xyz = temp2.yzw * temp1.www + temp4.xyz; + // mad r2.xyz, r2, c31.w, c31.x + temp2.xyz = temp2.xyz * float3(0.15915494, 0.15915494, 0.15915494) + float3(0.5, 0.5, 0.5); + // frc r2.xyz, r2 + temp2.xyz = frac(temp2.xyz); + // mad r2.xyz, r2, c36.z, c36.w + temp2.xyz = temp2.xyz * float3(6.2831855, 6.2831855, 6.2831855) + float3(-3.1415927, -3.1415927, -3.1415927); + // sincos r4.xy, r2.x + temp4.xy = float2(cos(temp2.x), sin(temp2.x)); + // sincos r5.xy, r2.y + temp5.xy = float2(cos(temp2.y), sin(temp2.y)); + // sincos r6.xy, r2.z + temp6.xy = float2(cos(temp2.z), sin(temp2.z)); + // mul r2, r4.yyxx, r6.xyxy + temp2 = temp4.yyxx * temp6.xyxy; + // mul r6.xy, r5.x, r6 + temp6.xy = temp5.xx * temp6.xy; + // mov r6.z, -r5.y + temp6.z = -temp5.y; + // mad r7.xy, r5.y, r2.yzzw, r2.zyzw + temp7.xy = temp5.yy * temp2.yz + temp2.zy; + // mad r2.xy, r5.y, r2.xwzw, -r2.wxzw + temp2.xy = temp5.yy * temp2.xw + -temp2.wx; + // mul r4.xy, r4.yxzw, r5.x + temp4.xy = temp4.yx * temp5.xx; + // dp3 r1.w, r0.yzww, r0.yzww + temp1.w = dot(temp0.yzw, temp0.yzw); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // slt r1.w, r1.w, c32.w + temp1.w = (temp1.w < float1(0.001)) ? 1 : 0; + // lrp r5.xyz, r1.w, v1, r0.yzww + temp5.xyz = lerp(temp0.yzw, i.texcoord.xyz, temp1.www); + // dp3 r0.y, r5, r5 + temp0.y = dot(temp5.xyz, temp5.xyz); + // rsq r0.y, r0.y + temp0.y = 1 / sqrt(temp0.y); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mul r4.zw, r5.xyxy, r5.xyxy + temp4.zw = temp5.xy * temp5.xy; + // add r0.w, r4.w, r4.z + temp0.w = temp4.w + temp4.z; + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // slt r0.z, -r0.z, r0.z + temp0.z = (-temp0.z < temp0.z) ? 1 : 0; + // mul r4.z, r5.z, r0.y + temp4.z = temp5.z * temp0.y; + // mul r4.w, r0.y, r1.w + temp4.w = temp0.y * temp1.w; + // lrp r8.xz, r0.z, r4.zyww, -c28.zyww + temp8.xz = lerp(float2(0, 1), temp4.zw, temp0.zz); + // slt r0.y, -r1.w, r1.w + temp0.y = (-temp1.w < temp1.w) ? 1 : 0; + // mad r0.zw, r5.xyyx, r0.w, c28 + temp0.zw = temp5.yx * temp0.ww + float2(-0, -1); + // mad r5.xy, r0.y, r0.zwzw, -c28.zwzw + temp5.xy = temp0.yy * temp0.zw + float2(0, 1); + // mul r9.xy, r8.z, r5.yxzw + temp9.xy = temp8.zz * temp5.yx; + // mov r9.z, -r5.x + temp9.z = -temp5.x; + // mul r5.xw, -r8.x, r5.yyzx + temp5.xw = -temp8.xx * temp5.yx; + // mov r9.w, r5.x + temp9.w = temp5.x; + // dp3 r0.y, r6, r9.xzww + temp0.y = dot(temp6.xyz, temp9.xzw); + // mov r5.z, r9.y + temp5.z = temp9.y; + // dp3 r10.x, r6.yxzw, r5.yzww + temp10.x = dot(temp6.yxz, temp5.yzw); + // mov r8.y, -c27.z + temp8.y = float1(0); + // dp3 r6.x, r6, r8 + temp6.x = dot(temp6.xyz, temp8.xyz); + // mov r2.z, r7.x + temp2.z = temp7.x; + // mov r2.w, r4.x + temp2.w = temp4.x; + // dp3 r0.z, r2.xzww, r9.xzww + temp0.z = dot(temp2.xzw, temp9.xzw); + // dp3 r10.y, r2.zxww, r5.yzww + temp10.y = dot(temp2.zxw, temp5.yzw); + // dp3 r6.y, r2.xzww, r8 + temp6.y = dot(temp2.xzw, temp8.xyz); + // mov r7.z, r2.y + temp7.z = temp2.y; + // mov r7.w, r4.y + temp7.w = temp4.y; + // dp3 r0.w, r7.yzww, r9.xzww + temp0.w = dot(temp7.yzw, temp9.xzw); + // dp3 r10.z, r7.zyww, r5.yzww + temp10.z = dot(temp7.zyw, temp5.yzw); + // dp3 r6.z, r7.yzww, r8 + temp6.z = dot(temp7.yzw, temp8.xyz); + // dp3 r0.y, r3.yzww, r0.yzww + temp0.y = dot(temp3.yzw, temp0.yzw); + // dp3 r0.z, r3.yzww, r10 + temp0.z = dot(temp3.yzw, temp10.xyz); + // dp3 r0.w, r3.yzww, r6 + temp0.w = dot(temp3.yzw, temp6.xyz); + // add r1.xyz, r1, r0.yzww + temp1.xyz = temp1.xyz + temp0.yzw; + // mul r0.y, r3.x, c33.w + temp0.y = temp3.x * float1(0.6666667); + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp4 r2.x, r1, c124 + temp2.x = dot(temp1, (WorldView._m00_m10_m20_m30)); + // dp4 r2.y, r1, c125 + temp2.y = dot(temp1, (WorldView._m01_m11_m21_m31)); + // dp4 r2.z, r1, c126 + temp2.z = dot(temp1, (WorldView._m02_m12_m22_m32)); + // dp4 r2.w, r1, c127 + temp2.w = dot(temp1, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r2.z, r0.y + o.texcoord5.x = temp2.z * temp0.y; + // dp4 r1.x, r2, c128 + temp1.x = dot(temp2, (Projection._m00_m10_m20_m30)); + // dp4 r1.y, r2, c129 + temp1.y = dot(temp2, (Projection._m01_m11_m21_m31)); + // dp4 r1.z, r2, c130 + temp1.z = dot(temp2, (Projection._m02_m12_m22_m32)); + // dp4 r1.w, r2, c131 + temp1.w = dot(temp2, (Projection._m03_m13_m23_m33)); + // rcp r0.z, r1.w + temp0.z = 1.0f / temp1.w; + // mul o4.x, r1.z, r0.z + o.texcoord2 = temp1.z * temp0.z; + // mul r0.z, r0.x, c73.x + temp0.z = temp0.x * Draw.SpeedMultiplier.x; + // min r2.y, r0.z, c46.x + temp2.y = min(temp0.z, expr46.x); + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.w, r0.x, c73.x, -r0.w + temp0.w = temp0.x * Draw.SpeedMultiplier.x + -temp0.w; + // min r2.x, r0.w, c46.x + temp2.x = min(temp0.w, expr46.x); + // if b0 + if (Error ConstBool0Error) { + // frc r3.xy, r2.yxzw + temp3.xy = frac(temp2.yx); + // add r4.xz, r2.yyxw, -r3.xyyw + temp4.xz = temp2.yx + -temp3.xy; + // mov r4.y, c52.x + temp4.y = expr52.x; + // add r3.yz, r4.xxyw, c35[a0.x].xxyw + temp3.yz = temp4.xy + float2(0, 0); + // mul o1.xy, r3.yzzw, c53.x + o.texcoord = temp3.yzzw * expr53.x; + // mov r4.w, c55.x + temp4.w = expr55.x; + // add r3.yz, r4.xzww, c35[a0.x].xxyw + temp3.yz = temp4.zw + float2(0, 0); + // mul o5.xy, r3.yzzw, c53.x + o.texcoord3.xy = temp3.yz * expr53.xx; + // mov o5.z, r3.x + o.texcoord3.z = temp3.x; + // else + } else { + // mad r3.x, v2.x, c37.z, c37.w + temp3.x = i.texcoord1.x * float1(0.1875) + float1(1.375); + // frc r3.x, r3.x + temp3.x = frac(temp3.x); + // mul r3.x, r3.x, c27.w + temp3.x = temp3.x * float1(16); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.x, r3.x, -r3.y + temp3.x = temp3.x + -temp3.y; + // mova a0.y, r3.x + addr0.y = temp3.x; + // mov r3.x, c64.x + temp3.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r3.y, r3.x, c11[a0.y].x + temp3.y = temp3.x * float1(0.957897); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.w, r3.y, -r3.z + temp3.w = temp3.y + -temp3.z; + // slt r3.y, r3.y, -r3.y + temp3.y = (temp3.y < -temp3.y) ? 1 : 0; + // slt r3.z, -r3.z, r3.z + temp3.z = (-temp3.z < temp3.z) ? 1 : 0; + // mad r2.w, r3.y, r3.z, r3.w + temp2.w = temp3.y * temp3.z + temp3.w; + // if b1 + if (Error ConstBool1Error) { + // mad r3.y, v2.x, c38.z, c38.w + temp3.y = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r3.y, r3.y + temp3.y = frac(temp3.y); + // mul r3.y, r3.y, c27.w + temp3.y = temp3.y * float1(16); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.y, r3.y, -r3.z + temp3.y = temp3.y + -temp3.z; + // mova a0.y, r3.y + addr0.y = temp3.y; + // mul r3.x, r3.x, c11[a0.y].x + temp3.x = temp3.x * float1(0.957897); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.z, r3.x, -r3.y + temp3.z = temp3.x + -temp3.y; + // slt r3.x, r3.x, -r3.x + temp3.x = (temp3.x < -temp3.x) ? 1 : 0; + // slt r3.y, -r3.y, r3.y + temp3.y = (-temp3.y < temp3.y) ? 1 : 0; + // mad r2.z, r3.x, r3.y, r3.z + temp2.z = temp3.x * temp3.y + temp3.z; + // add r3.xy, r2.zwzw, c35[a0.x] + temp3.xy = temp2.zw + float2(0, 0); + // mul r3.xy, r3, c57.x + temp3.xy = temp3.xy * expr57.xx; + // mov o5.z, -c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r3 + o.texcoord3.xy = temp3.xy; + // mov o1.xy, r3 + o.texcoord = temp3; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r3.z, r2.y + temp3.z = frac(temp2.y); + // mov r3.w, -c27.z + temp3.w = float1(0); + // add r2.yz, r2.xyww, -r3.xzww + temp2.yz = temp2.yw + -temp3.zw; + // add r2.yz, r2, c35[a0.x].xxyw + temp2.yz = temp2.yz + float2(0, 0); + // mul o1.xy, r2.yzzw, c61.x + o.texcoord = temp2.yzzw * expr61.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // mov r2.z, -c27.z + temp2.z = float1(0); + // add r2.xy, r2.xwzw, -r2.yzzw + temp2.xy = temp2.xw + -temp2.yz; + // add r2.xy, r2, c35[a0.x] + temp2.xy = temp2.xy + float2(0, 0); + // mul r3.xy, r2, c61.x + temp3.xy = temp2.xy * expr61.xx; + // mov o5.xyz, r3 + o.texcoord3 = temp3; + // else + } else { + // mul r2.x, r0.z, c62.x + temp2.x = temp0.z * expr62.x; + // frc r2.y, r2_abs.x + temp2.y = frac(abs(temp2).x); + // sge r2.x, r2.x, -r2.x + temp2.x = (temp2.x >= -temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, r2.y, -r2.y + temp3.x = lerp(-temp2.y, temp2.y, temp2.x); + // mul r2.x, r3.x, c64.y + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r2.x, c63.x + temp2.y = temp2.x * expr63.x; + // frc r2.z, r2_abs.y + temp2.z = frac(abs(temp2).y); + // sge r2.w, r2.y, -r2.y + temp2.w = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r2.x, r3.x, c64.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c35[a0.x] + temp2.xy = temp2.xy + float2(0, 0); + // mul o1.xy, r2, c63.x + o.texcoord = temp2 * expr63.x; + // mul r0.w, r0.w, c62.x + temp0.w = temp0.w * expr62.x; + // frc r2.x, r0_abs.w + temp2.x = frac(abs(temp0).w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r3.x, r0.w, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.w); + // mul r0.w, r3.x, c64.y + temp0.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.w, c63.x + temp2.y = temp0.w * expr63.x; + // frc r0.w, r2_abs.y + temp0.w = frac(abs(temp2).y); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.z); + // mul r2.x, r3.x, c64.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c35[a0.x] + temp2.xy = temp2.xy + float2(0, 0); + // mul o5.xy, r2, c63.x + o.texcoord3.xy = temp2.xy * expr63.xx; + // frc o5.z, r0.z + o.texcoord3.z = frac(temp0.z); + // endif + } + // endif + } + // endif + } + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // mov r2, c65 + temp2 = Draw.ColorAnimationFunctions[0]; + // mad r2, r2, r0.x, c66 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[1]; + // slt r0.zw, r0.x, c71.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c67 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.x, c68 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r4, c69 + temp4 = Draw.ColorAnimationFunctions[4]; + // mad r4, r4, r0.x, c70 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[5]; + // lrp r5, r0.w, r3, r4 + temp5 = lerp(temp4, temp3, temp0.w); + // lrp r3, r0.z, r2, r5 + temp3 = lerp(temp5, temp2, temp0.z); + // mov r2.xy, c74 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.z].x, r2.y, r2.x + temp0.x = float1(0.957897) * temp2.y + temp2.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r1 + o.position = temp1; + // mov o3.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r1 + o.texcoord4 = temp1; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +// VS_Array_H_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_H_Shader_2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_H_Shader_2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +VS_Array_H_Shader_2_Output VS_Array_H_Shader_2(VS_Array_H_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 45 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 45 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 52 ConstInput 2 + 1 - ConstOutput: 55 ConstInput 1 + 2 - ConstOutput: 57 ConstInput 1 + 3 - ConstOutput: 61 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + float4 expr58; + float4 expr59; + float4 expr60; + float4 expr61; + float4 expr62; + float4 expr63; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c45.x, c1.x, (30) + expr45.x = Time.x * (30); + // add c46.x, c0.x, (-1) + expr46.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c62.x, c0.y + expr62.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c52.x, r1.x + expr52.x = temp1.x; + // mov c55.x, r1.x + expr55.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c53.x, r0.x + expr53.x = temp0.x; + // mov c57.x, r0.x + expr57.x = temp0.x; + // mov c61.x, r0.x + expr61.x = temp0.x; + // mov c63.x, r0.x + expr63.x = temp0.x; + } + + VS_Array_H_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp7; + float3 addr0, temp6; + // def c44, 0.1875, 8.9375, 2.0625, 2.75 + // def c27, 0.5, 0.5, -0, 16 + // def c28, 0.5, -0.5, -0, -1 + // def c36, 0, 1, 6.283185, -3.141593 + // def c31, 0.5, -0, 0.5, 0.1591549 + // def c32, 0.5, -0, -0.5, 0.6666667 + // def c37, 1, 1, 0.1875, 1.375 + // def c38, 1, 0, 0.1875, 4.8125 + // def c29, -0.5, -0.5, -0, 1.0001 + // def c30, -0.5, 0.5, -0, 0.6931472 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c33, -0.5, -0, -0.5, 0 + // def c34, -0.5, -0, 0.5, 0 + // def c35, 0, 0, 0, 0 + // def c39, 0, 0, 0, 0 + // def c40, 0, 1, 0, 0 + // def c41, 1, 1, 0, 0 + // def c42, 1, 0, 0, 0 + // def c43, 0, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // add r0.x, c45.x, -v1.w + temp0.x = expr45.x + -i.texcoord.w; + // mad r0.yzw, v2.x, c44.x, c44 + temp0.yzw = i.texcoord1.xxx * float3(0.1875, 0.1875, 0.1875) + float3(8.9375, 2.0625, 2.75); + // frc r0.yzw, r0 + temp0.yzw = frac(temp0.yzw); + // mul r0.yzw, r0, c27.w + temp0.yzw = temp0.yzw * float3(16, 16, 16); + // frc r1.xyz, r0.yzww + temp1.xyz = frac(temp0.yzw); + // add r0.yzw, r0, -r1.xxyz + temp0.yzw = temp0.yzw + -temp1.xyz; + // mova a0.xyz, r0.yzww + addr0.xyz = temp0.yzw; + // mov r1.xy, c88 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r0.y, c11[a0.x].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // add r0.z, r0.y, c28.w + temp0.z = temp0.y + float1(-1); + // sge r0.z, -r0_abs.z, r0_abs.z + temp0.z = (r0.z == 0) ? 1 : 0; + // lrp r1.x, r0.z, c29.w, r0.y + temp1.x = lerp(temp0.y, float1(1.0001), temp0.z); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // mul r0.z, r0.x, r0.y + temp0.z = temp0.x * temp0.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c28.w + temp0.z = temp0.z + float1(-1); + // mul r0.y, r0.y, c30.w + temp0.y = temp0.y * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul r0.y, r0.z, r0.y + temp0.y = temp0.z * temp0.y; + // mul r0.z, r0.x, c27.x + temp0.z = temp0.x * float1(0.5); + // mov r1.xyz, c86 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.z, r1, c87 + temp1.xyz = temp0.zzz * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mad r0.yzw, v1.xxyz, r0.y, r1.xxyz + temp0.yzw = i.texcoord.xyz * temp0.yyy + temp1.xyz; + // add r0.yzw, r0, v0.xxyz + temp0.yzw = temp0.yzw + i.position.xyz; + // mov r1.xyz, c11[a0.y] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c76 + temp2.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r2.xyz, r1, r2, c75 + temp2.xyz = temp1.xyz * temp2.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r3.xyz, c78 + temp3.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r3.xyz, r1, r3, c77 + temp3.xyz = temp1.xyz * temp3.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mov r4.xyz, c80 + temp4.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r4.xyz, r1, r4, c79 + temp4.xyz = temp1.xyz * temp4.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r5.xyz, r4, c28.w + temp5.xyz = temp4.xyz + float3(-1, -1, -1); + // sge r5.xyz, -r5_abs, r5_abs + temp5.xyz = (r5.xyz == 0) ? 1 : 0; + // lrp r6.xyz, r5, c29.w, r4 + temp6.xyz = lerp(temp4.xyz, float3(1.0001, 1.0001, 1.0001), temp5.xyz); + // log r4.x, r6.x + temp4.x = log2(temp6.x); + // log r4.y, r6.y + temp4.y = log2(temp6.y); + // log r4.z, r6.z + temp4.z = log2(temp6.z); + // mul r5.xyz, r0.x, r4 + temp5.xyz = temp0.xxx * temp4.xyz; + // exp r6.x, r5.x + temp6.x = exp2(temp5.x); + // exp r6.y, r5.y + temp6.y = exp2(temp5.y); + // exp r6.z, r5.z + temp6.z = exp2(temp5.z); + // add r5.xyz, r6, c28.w + temp5.xyz = temp6.xyz + float3(-1, -1, -1); + // mul r4.xyz, r4, c30.w + temp4.xyz = temp4.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r6.x, r4.x + temp6.x = 1.0f / temp4.x; + // rcp r6.y, r4.y + temp6.y = 1.0f / temp4.y; + // rcp r6.z, r4.z + temp6.z = 1.0f / temp4.z; + // mul r4.xyz, r5, r6 + temp4.xyz = temp5.xyz * temp6.xyz; + // mad r2.xyz, r3, r4, r2 + temp2.xyz = temp3.xyz * temp4.xyz + temp2.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mul r2.yzw, r2.xxyz, c27[a0.x].xxyz + temp2.yzw = temp2.xyz * float3(0.5, 0.5, -0); + // mov r3.xyz, c82 + temp3.xyz = GeometryUpdate.AngleSpreads.xyz; + // mad r3.xyz, r1, r3, c81 + temp3.xyz = temp1.xyz * temp3.xyz + GeometryUpdate.AngleMinimums.xyz; + // mov r4.xyz, c84 + temp4.xyz = GeometryUpdate.AngularRateSpreads.xyz; + // mad r1.yzw, r1.xxyz, r4.xxyz, c83.xxyz + temp1.yzw = temp1.xyz * temp4.xyz + GeometryUpdate.AngularRateMinimums.xyz; + // mad r1.x, r1.x, c85.y, c85.x + temp1.x = temp1.x * GeometryUpdate.AngleDampingMin_AngleDampingSpread.y + GeometryUpdate.AngleDampingMin_AngleDampingSpread.x; + // add r3.w, r1.x, c28.w + temp3.w = temp1.x + float1(-1); + // sge r3.w, -r3_abs.w, r3_abs.w + temp3.w = (r3.w == 0) ? 1 : 0; + // lrp r4.x, r3.w, c29.w, r1.x + temp4.x = lerp(temp1.x, float1(1.0001), temp3.w); + // log r1.x, r4.x + temp1.x = log2(temp4.x); + // mul r3.w, r0.x, r1.x + temp3.w = temp0.x * temp1.x; + // exp r3.w, r3.w + temp3.w = exp2(temp3.w); + // add r3.w, r3.w, c28.w + temp3.w = temp3.w + float1(-1); + // mul r1.x, r1.x, c30.w + temp1.x = temp1.x * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r3.w, r1.x + temp1.x = temp3.w * temp1.x; + // mad r1.xyz, r1.yzww, r1.x, r3 + temp1.xyz = temp1.yzw * temp1.xxx + temp3.xyz; + // mad r1.xyz, r1, c31.w, c31.x + temp1.xyz = temp1.xyz * float3(0.15915494, 0.15915494, 0.15915494) + float3(0.5, 0.5, 0.5); + // frc r1.xyz, r1 + temp1.xyz = frac(temp1.xyz); + // mad r1.xyz, r1, c36.z, c36.w + temp1.xyz = temp1.xyz * float3(6.2831855, 6.2831855, 6.2831855) + float3(-3.1415927, -3.1415927, -3.1415927); + // sincos r3.xy, r1.x + temp3.xy = float2(cos(temp1.x), sin(temp1.x)); + // sincos r4.xy, r1.y + temp4.xy = float2(cos(temp1.y), sin(temp1.y)); + // sincos r5.xy, r1.z + temp5.xy = float2(cos(temp1.z), sin(temp1.z)); + // mul r1, r3.yyxx, r5.xyxy + temp1 = temp3.yyxx * temp5.xyxy; + // mul r5.xy, r4.x, r5 + temp5.xy = temp4.xx * temp5.xy; + // mov r6.x, -r4.y + temp6.x = -temp4.y; + // mad r7.xy, r4.y, r1.yzzw, r1.zyzw + temp7.xy = temp4.yy * temp1.yz + temp1.zy; + // mad r1.xy, r4.y, r1.xwzw, -r1.wxzw + temp1.xy = temp4.yy * temp1.xw + -temp1.wx; + // mul r6.yz, r3.xyxw, r4.x + temp6.yz = temp3.yx * temp4.xx; + // mov r5.z, r1.x + temp5.z = temp1.x; + // mov r5.w, r7.y + temp5.w = temp7.y; + // dp3 r1.x, r2.yzww, r5.xzww + temp1.x = dot(temp2.yzw, temp5.xzw); + // mov r7.z, r5.y + temp7.z = temp5.y; + // mov r7.w, r1.y + temp7.w = temp1.y; + // dp3 r1.z, r2.zyww, r7.xzww + temp1.z = dot(temp2.zyw, temp7.xzw); + // dp3 r1.w, r2.yzww, r6 + temp1.w = dot(temp2.yzw, temp6.xyz); + // add r1.xyz, r0.yzww, r1.xzww + temp1.xyz = temp0.yzw + temp1.xzw; + // mul r0.y, r2.x, c32.w + temp0.y = temp2.x * float1(0.6666667); + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp4 r2.x, r1, c124 + temp2.x = dot(temp1, (WorldView._m00_m10_m20_m30)); + // dp4 r2.y, r1, c125 + temp2.y = dot(temp1, (WorldView._m01_m11_m21_m31)); + // dp4 r2.z, r1, c126 + temp2.z = dot(temp1, (WorldView._m02_m12_m22_m32)); + // dp4 r2.w, r1, c127 + temp2.w = dot(temp1, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r2.z, r0.y + o.texcoord5.x = temp2.z * temp0.y; + // dp4 r1.x, r2, c128 + temp1.x = dot(temp2, (Projection._m00_m10_m20_m30)); + // dp4 r1.y, r2, c129 + temp1.y = dot(temp2, (Projection._m01_m11_m21_m31)); + // dp4 r1.z, r2, c130 + temp1.z = dot(temp2, (Projection._m02_m12_m22_m32)); + // dp4 r1.w, r2, c131 + temp1.w = dot(temp2, (Projection._m03_m13_m23_m33)); + // rcp r0.z, r1.w + temp0.z = 1.0f / temp1.w; + // mul o4.x, r1.z, r0.z + o.texcoord2 = temp1.z * temp0.z; + // mul r0.z, r0.x, c73.x + temp0.z = temp0.x * Draw.SpeedMultiplier.x; + // min r2.y, r0.z, c46.x + temp2.y = min(temp0.z, expr46.x); + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.w, r0.x, c73.x, -r0.w + temp0.w = temp0.x * Draw.SpeedMultiplier.x + -temp0.w; + // min r2.x, r0.w, c46.x + temp2.x = min(temp0.w, expr46.x); + // if b0 + if (Error ConstBool0Error) { + // frc r3.xy, r2.yxzw + temp3.xy = frac(temp2.yx); + // add r4.xz, r2.yyxw, -r3.xyyw + temp4.xz = temp2.yx + -temp3.xy; + // mov r4.y, c52.x + temp4.y = expr52.x; + // add r3.yz, r4.xxyw, c35[a0.x].xxyw + temp3.yz = temp4.xy + float2(0, 0); + // mul o1.xy, r3.yzzw, c53.x + o.texcoord = temp3.yzzw * expr53.x; + // mov r4.w, c55.x + temp4.w = expr55.x; + // add r3.yz, r4.xzww, c35[a0.x].xxyw + temp3.yz = temp4.zw + float2(0, 0); + // mul o5.xy, r3.yzzw, c53.x + o.texcoord3.xy = temp3.yz * expr53.xx; + // mov o5.z, r3.x + o.texcoord3.z = temp3.x; + // else + } else { + // mad r3.x, v2.x, c37.z, c37.w + temp3.x = i.texcoord1.x * float1(0.1875) + float1(1.375); + // frc r3.x, r3.x + temp3.x = frac(temp3.x); + // mul r3.x, r3.x, c27.w + temp3.x = temp3.x * float1(16); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.x, r3.x, -r3.y + temp3.x = temp3.x + -temp3.y; + // mova a0.y, r3.x + addr0.y = temp3.x; + // mov r3.x, c64.x + temp3.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r3.y, r3.x, c11[a0.y].x + temp3.y = temp3.x * float1(0.957897); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.w, r3.y, -r3.z + temp3.w = temp3.y + -temp3.z; + // slt r3.y, r3.y, -r3.y + temp3.y = (temp3.y < -temp3.y) ? 1 : 0; + // slt r3.z, -r3.z, r3.z + temp3.z = (-temp3.z < temp3.z) ? 1 : 0; + // mad r2.w, r3.y, r3.z, r3.w + temp2.w = temp3.y * temp3.z + temp3.w; + // if b1 + if (Error ConstBool1Error) { + // mad r3.y, v2.x, c38.z, c38.w + temp3.y = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r3.y, r3.y + temp3.y = frac(temp3.y); + // mul r3.y, r3.y, c27.w + temp3.y = temp3.y * float1(16); + // frc r3.z, r3.y + temp3.z = frac(temp3.y); + // add r3.y, r3.y, -r3.z + temp3.y = temp3.y + -temp3.z; + // mova a0.y, r3.y + addr0.y = temp3.y; + // mul r3.x, r3.x, c11[a0.y].x + temp3.x = temp3.x * float1(0.957897); + // frc r3.y, r3.x + temp3.y = frac(temp3.x); + // add r3.z, r3.x, -r3.y + temp3.z = temp3.x + -temp3.y; + // slt r3.x, r3.x, -r3.x + temp3.x = (temp3.x < -temp3.x) ? 1 : 0; + // slt r3.y, -r3.y, r3.y + temp3.y = (-temp3.y < temp3.y) ? 1 : 0; + // mad r2.z, r3.x, r3.y, r3.z + temp2.z = temp3.x * temp3.y + temp3.z; + // add r3.xy, r2.zwzw, c35[a0.x] + temp3.xy = temp2.zw + float2(0, 0); + // mul r3.xy, r3, c57.x + temp3.xy = temp3.xy * expr57.xx; + // mov o5.z, -c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r3 + o.texcoord3.xy = temp3.xy; + // mov o1.xy, r3 + o.texcoord = temp3; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r3.z, r2.y + temp3.z = frac(temp2.y); + // mov r3.w, -c27.z + temp3.w = float1(0); + // add r2.yz, r2.xyww, -r3.xzww + temp2.yz = temp2.yw + -temp3.zw; + // add r2.yz, r2, c35[a0.x].xxyw + temp2.yz = temp2.yz + float2(0, 0); + // mul o1.xy, r2.yzzw, c61.x + o.texcoord = temp2.yzzw * expr61.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // mov r2.z, -c27.z + temp2.z = float1(0); + // add r2.xy, r2.xwzw, -r2.yzzw + temp2.xy = temp2.xw + -temp2.yz; + // add r2.xy, r2, c35[a0.x] + temp2.xy = temp2.xy + float2(0, 0); + // mul r3.xy, r2, c61.x + temp3.xy = temp2.xy * expr61.xx; + // mov o5.xyz, r3 + o.texcoord3 = temp3; + // else + } else { + // mul r2.x, r0.z, c62.x + temp2.x = temp0.z * expr62.x; + // frc r2.y, r2_abs.x + temp2.y = frac(abs(temp2).x); + // sge r2.x, r2.x, -r2.x + temp2.x = (temp2.x >= -temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, r2.y, -r2.y + temp3.x = lerp(-temp2.y, temp2.y, temp2.x); + // mul r2.x, r3.x, c64.y + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r2.x, c63.x + temp2.y = temp2.x * expr63.x; + // frc r2.z, r2_abs.y + temp2.z = frac(abs(temp2).y); + // sge r2.w, r2.y, -r2.y + temp2.w = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r2.x, r3.x, c64.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c35[a0.x] + temp2.xy = temp2.xy + float2(0, 0); + // mul o1.xy, r2, c63.x + o.texcoord = temp2 * expr63.x; + // mul r0.w, r0.w, c62.x + temp0.w = temp0.w * expr62.x; + // frc r2.x, r0_abs.w + temp2.x = frac(abs(temp0).w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // lrp r3.x, r0.w, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.w); + // mul r0.w, r3.x, c64.y + temp0.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.w, c63.x + temp2.y = temp0.w * expr63.x; + // frc r0.w, r2_abs.y + temp0.w = frac(abs(temp2).y); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.z); + // mul r2.x, r3.x, c64.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c35[a0.x] + temp2.xy = temp2.xy + float2(0, 0); + // mul o5.xy, r2, c63.x + o.texcoord3.xy = temp2.xy * expr63.xx; + // frc o5.z, r0.z + o.texcoord3.z = frac(temp0.z); + // endif + } + // endif + } + // endif + } + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // mov r2, c65 + temp2 = Draw.ColorAnimationFunctions[0]; + // mad r2, r2, r0.x, c66 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[1]; + // slt r0.zw, r0.x, c71.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c67 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.x, c68 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r4, c69 + temp4 = Draw.ColorAnimationFunctions[4]; + // mad r4, r4, r0.x, c70 + temp4 = temp4 * temp0.x + Draw.ColorAnimationFunctions[5]; + // lrp r5, r0.w, r3, r4 + temp5 = lerp(temp4, temp3, temp0.w); + // lrp r3, r0.z, r2, r5 + temp3 = lerp(temp5, temp2, temp0.z); + // mov r2.xy, c74 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.z].x, r2.y, r2.x + temp0.x = float1(0.957897) * temp2.y + temp2.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r1 + o.position = temp1; + // mov o3.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r1 + o.texcoord4 = temp1; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +VertexShader VS_Array_H[3] = { + compile vs_3_0 VS_Array_H_Shader_0(), // 31 + compile vs_3_0 VS_Array_H_Shader_1(), // 32 + compile vs_3_0 VS_Array_H_Shader_2(), // 33 +}; +// PS_Array_H_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_0(PS_Array_H_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v4.y, v4.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v2, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v2.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.xyz, r0.x, r1 + out_color.xyz = temp0.xxx * temp1.xyz; + // mov oC0.w, r1.w + out_color.w = temp1.w; + // + + return out_color; +} + +// PS_Array_H_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_1(PS_Array_H_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, -1, 1 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mad r0.xyz, r1, r0.x, c0.z + temp0.xyz = temp1.xyz * temp0.xxx + float3(-1, -1, -1); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.w + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_2(PS_Array_H_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_3(PS_Array_H_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v4.y, v4.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v2, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v2.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // mov oC0.xyz, r1 + out_color.xyz = temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_4(PS_Array_H_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, -1, 1 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r0.y, r3.w, v1.w + temp0.y = temp3.w * i.color.w; + // mad r1.xyz, r3, v1, c0.z + temp1.xyz = temp3.xyz * i.color.xyz + float3(-1, -1, -1); + // mul oC0.w, r0.x, r0.y + out_color.w = temp0.x * temp0.y; + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r0, r1, c0.w + out_color.xyz = temp0.xyz * temp1.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_H_Shader_5(PS_Array_H_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s2 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s0 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s1 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_6_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_6(PS_Array_H_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v2, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v2.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul oC0, r2, v1 + out_color = temp2 * i.color; + // + + return out_color; +} + +// PS_Array_H_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_7_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_7(PS_Array_H_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, -1, 1, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mad r0.xyz, r2, v1, c0.x + temp0.xyz = temp2.xyz * i.color.xyz + float3(-1, -1, -1); + // mul r0.w, r2.w, v1.w + temp0.w = temp2.w * i.color.w; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.y + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// PS_Array_H_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_8_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_8(PS_Array_H_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader PS_Array_H[9] = { + compile ps_3_0 PS_Array_H_Shader_0(), // 34 + compile ps_3_0 PS_Array_H_Shader_1(), // 35 + compile ps_3_0 PS_Array_H_Shader_2(), // 36 + compile ps_3_0 PS_Array_H_Shader_3(), // 37 + compile ps_3_0 PS_Array_H_Shader_4(), // 38 + compile ps_3_0 PS_Array_H_Shader_5(), // 39 + compile ps_3_0 PS_Array_H_Shader_6(), // 40 + compile ps_3_0 PS_Array_H_Shader_7(), // 41 + compile ps_3_0 PS_Array_H_Shader_8(), // 42 +}; +// VS_Array_L_Shader_0 Vertex_2_0 Has PRES True +struct VS_Array_L_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_L_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +VS_Array_L_Shader_0_Output VS_Array_L_Shader_0(VS_Array_L_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 45 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 45 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 51 ConstInput 2 + 1 - ConstOutput: 54 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c45.x, c1.x, (30) + expr45.x = Time.x * (30); + // add c46.x, c0.x, (-1) + expr46.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c56.x, r1.x, r0.y + expr56.x = temp1.x < temp0.y; + // mul c57.x, r0.x, r2.x + expr57.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c51.x, r2.z, r0.x + expr51.x = temp2.z + temp0.x; + // rcp c52.x, c0.x + expr52.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c55.x, r0.x, r1.x + expr55.x = temp0.x >= temp1.x; + // rcp c54.x, c0.y + expr54.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + VS_Array_L_Shader_0_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + // def c44, 8.9375, 2.0625, 1.375, 4.8125 + // def c29, -0.5, -0.5, -0, 16 + // def c30, -0.5, 0.5, -0, -1 + // def c36, 0, 1, 0.1875, 2.75 + // def c31, 0.5, -0, 0.5, 1.0001 + // def c28, 0.5, -0.5, -0, 0.1875 + // def c32, 0.5, -0, -0.5, 0.6931472 + // def c27, 0.5, 0.5, -0, 0 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c33, -0.5, -0, -0.5, 0 + // def c34, -0.5, -0, 0.5, 0 + // def c35, 0, 0, 0, 0 + // def c37, 1, 1, 0, 0 + // def c38, 1, 0, 0, 0 + // def c39, 0, 0, 0, 0 + // def c40, 0, 1, 0, 0 + // def c41, 1, 1, 0, 0 + // def c42, 1, 0, 0, 0 + // def c43, 0, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c28.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c44 + temp0 = i.texcoord1.x * temp0.w + float4(8.9375, 2.0625, 1.375, 4.8125); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c29.w + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xyz, c11[a0.y] + temp0.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r1.xyz, c74 + temp1.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r1.xyz, r0, r1, c73 + temp1.xyz = temp0.xyz * temp1.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r2.xyz, r1, c30.w + temp2.xyz = temp1.xyz + float3(-1, -1, -1); + // mul r2.xyz, r2, r2 + temp2.xyz = temp2.xyz * temp2.xyz; + // sge r2.xyz, -r2, r2 + temp2.xyz = (-temp2.xyz >= temp2.xyz) ? 1 : 0; + // lrp r3.xyz, r2, c31.w, r1 + temp3.xyz = lerp(temp1.xyz, float3(1.0001, 1.0001, 1.0001), temp2.xyz); + // log r1.x, r3.x + temp1.x = log2(temp3.x); + // log r1.y, r3.y + temp1.y = log2(temp3.y); + // log r1.z, r3.z + temp1.z = log2(temp3.z); + // mul r2.xyz, r1, c32.w + temp2.xyz = temp1.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r3.x, r2.x + temp3.x = 1.0f / temp2.x; + // rcp r3.y, r2.y + temp3.y = 1.0f / temp2.y; + // rcp r3.z, r2.z + temp3.z = 1.0f / temp2.z; + // add r0.w, -v1.w, c45.x + temp0.w = -i.texcoord.w + expr45.x; + // mul r1.xyz, r1, r0.w + temp1.xyz = temp1.xyz * temp0.www; + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // add r1.xyz, r2, c30.w + temp1.xyz = temp2.xyz + float3(-1, -1, -1); + // mul r1.xyz, r3, r1 + temp1.xyz = temp3.xyz * temp1.xyz; + // mov r2.xyz, c70 + temp2.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r2.xyz, r0, r2, c69 + temp2.xyz = temp0.xyz * temp2.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r3.xyz, c72 + temp3.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r0.xyz, r0, r3, c71 + temp0.xyz = temp0.xyz * temp3.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mad r0.xyz, r0, r1, r2 + temp0.xyz = temp0.xyz * temp1.xyz + temp2.xyz; + // mov r1.xy, c81 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r1.x, c11[a0.x].x, r1.y, r1.x + temp1.x = float1(0.957897) * temp1.y + temp1.x; + // add r1.y, r1.x, c30.w + temp1.y = temp1.x + float1(-1); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // sge r1.y, -r1.y, r1.y + temp1.y = (-temp1.y >= temp1.y) ? 1 : 0; + // lrp r2.x, r1.y, c31.w, r1.x + temp2.x = lerp(temp1.x, float1(1.0001), temp1.y); + // log r1.x, r2.x + temp1.x = log2(temp2.x); + // mul r1.y, r1.x, c32.w + temp1.y = temp1.x * float1(0.6931472); + // mul r1.x, r0.w, r1.x + temp1.x = temp0.w * temp1.x; + // rcp r1.y, r1.y + temp1.y = 1.0f / temp1.y; + // exp r1.x, r1.x + temp1.x = exp2(temp1.x); + // add r1.x, r1.x, c30.w + temp1.x = temp1.x + float1(-1); + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mul r1.y, r0.w, c27.x + temp1.y = temp0.w * float1(0.5); + // mov r2.xyz, c79 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.yzw, r1.y, r2.xxyz, c80.xxyz + temp1.yzw = temp1.yyy * temp2.xyz + Physics.DriftVelocity.xyz; + // mul r1.yzw, r0.w, r1 + temp1.yzw = temp0.www * temp1.yzw; + // mad r1.xyz, v1, r1.x, r1.yzww + temp1.xyz = i.texcoord.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, v0 + temp1.xyz = temp1.xyz + i.position.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mad r1.xyz, c27[a0.x], r0, r1 + temp1.xyz = float3(0.5, 0.5, -0) * temp0.xyz + temp1.xyz; + // mov r1.w, -c30.w + temp1.w = float1(1); + // dp4 oPos.x, r1, c75 + o.position.x = dot(temp1, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c76 + o.position.y = dot(temp1, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c78 + temp0.y = dot(temp1, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c77 + temp0.x = dot(temp1, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mov r0.x, c58.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r0.x, c11[a0.w].x + temp0.y = temp0.x * float1(0.957897); + // mul r0.x, r0.x, c11[a0.z].x + temp0.x = temp0.x * float1(0.957897); + // frc r0.z, r0.y + temp0.z = frac(temp0.y); + // add r1.x, r0.y, -r0.z + temp1.x = temp0.y + -temp0.z; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r0.z, -r0.z, r0.z + temp0.z = (-temp0.z < temp0.z) ? 1 : 0; + // mad r1.y, r0.y, r0.z, r1.x + temp1.y = temp0.y * temp0.z + temp1.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r1.z, r0.x, r0.y, r0.z + temp1.z = temp0.x * temp0.y + temp0.z; + // add r0.xy, r1.yzzw, c35[a0.x] + temp0.xy = temp1.yz + float2(0, 0); + // mov r2.z, c27.w + temp2.z = float1(0); + // mul r0.z, r0.w, c67.x + temp0.z = temp0.w * Draw.SpeedMultiplier.x; + // min r1.x, r0.z, c46.x + temp1.x = min(temp0.z, expr46.x); + // mul r0.z, r0.z, c54.x + temp0.z = temp0.z * expr54.x; + // frc r2.xy, r1.x + temp2.xy = frac(temp1.x); + // add r1.xyz, r1.xxzw, -r2 + temp1.xyz = temp1.xxz + -temp2.xyz; + // add r1.yz, r1, c35[a0.x].xxyw + temp1.yz = temp1.yz + float2(0, 0); + // abs r2.x, r0.z + temp2.x = abs(temp0.z); + // sge r0.z, r0.z, -r0.z + temp0.z = (temp0.z >= -temp0.z) ? 1 : 0; + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // lrp r3.x, r0.z, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.z); + // mul r0.z, r3.x, c58.y + temp0.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.z, c52.x + temp2.y = temp0.z * expr52.x; + // abs r0.z, r2.y + temp0.z = abs(temp2.y); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.z, -r0.z + temp3.x = lerp(-temp0.z, temp0.z, temp2.z); + // mul r2.x, r3.x, c58.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c35[a0.x] + temp2.xy = temp2.xy + float2(0, 0); + // mul r2.xy, r2, c52.x + temp2.xy = temp2.xy * expr52.xx; + // mad r1.yz, r1, c52.x, -r2.xxyw + temp1.yz = temp1.yz * expr52.xx + -temp2.xy; + // mad r1.yz, c55.x, r1, r2.xxyw + temp1.yz = expr55.xx * temp1.yz + temp2.xy; + // mad r0.xy, r0, c52.x, -r1.yzzw + temp0.xy = temp0.xy * expr52.xx + -temp1.yz; + // mad r0.xy, c56.x, r0, r1.yzzw + temp0.xy = expr56.xx * temp0.xy + temp1.yz; + // mov r1.w, c51.x + temp1.w = expr51.x; + // add r1.xy, r1.xwzw, c35[a0.x] + temp1.xy = temp1.xw + float2(0, 0); + // mad r1.xy, r1, c52.x, -r0 + temp1.xy = temp1.xy * expr52.xx + -temp0.xy; + // mad oT0.xy, c57.x, r1, r0 + o.texcoord = expr57.x * temp1 + temp0; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // mov r1, c61 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c62 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c63 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c64 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c65 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c59 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c60 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // lrp r1, r0.y, r3, r4 + temp1 = lerp(temp4, temp3, temp0.y); + // mad r0.x, v2.x, c36.z, c36.w + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c29.w + temp0.x = temp0.x * float1(16); + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.x, r0.x, -r0.y + temp0.x = temp0.x + -temp0.y; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.xy, c68 + temp0.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // mul oD0, r1, r0.x + o.color = temp1 * temp0.x; + // + + return o; +} + +// VS_Array_L_Shader_1 Vertex_2_0 Has PRES True +struct VS_Array_L_Shader_1_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_L_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +VS_Array_L_Shader_1_Output VS_Array_L_Shader_1(VS_Array_L_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 45 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 45 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 51 ConstInput 2 + 1 - ConstOutput: 54 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c45.x, c1.x, (30) + expr45.x = Time.x * (30); + // add c46.x, c0.x, (-1) + expr46.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c56.x, r1.x, r0.y + expr56.x = temp1.x < temp0.y; + // mul c57.x, r0.x, r2.x + expr57.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c51.x, r2.z, r0.x + expr51.x = temp2.z + temp0.x; + // rcp c52.x, c0.x + expr52.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c55.x, r0.x, r1.x + expr55.x = temp0.x >= temp1.x; + // rcp c54.x, c0.y + expr54.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + VS_Array_L_Shader_1_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5, temp7, temp8; + float3 temp6, temp9, temp10; + // def c44, 8.9375, 2.0625, 1.375, 4.8125 + // def c29, -0.5, -0.5, -0, 16 + // def c36, 0, 1, 6.283185, -3.141593 + // def c34, -0.5, -0, 0.5, 0.001 + // def c37, 1, 1, 0.1875, 2.75 + // def c31, 0.5, -0, 0.5, 1.0001 + // def c30, -0.5, 0.5, -0, -1 + // def c28, 0.5, -0.5, -0, 0.1875 + // def c32, 0.5, -0, -0.5, 0.6931472 + // def c27, 0.5, 0.5, -0, 0 + // def c33, -0.5, -0, -0.5, -0.1591549 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c35, 0, 0, 0, 0 + // def c38, 1, 0, 0, 0 + // def c39, 0, 0, 0, 0 + // def c40, 0, 1, 0, 0 + // def c41, 1, 1, 0, 0 + // def c42, 1, 0, 0, 0 + // def c43, 0, 0, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c28.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c44 + temp0 = i.texcoord1.x * temp0.w + float4(8.9375, 2.0625, 1.375, 4.8125); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c29.w + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c86 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c30.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c31.w, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c32.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c45.x + temp0.z = -i.texcoord.w + expr45.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c30.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r0.y, r0.z, c27.x + temp0.y = temp0.z * float1(0.5); + // mov r1.xyz, c84 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.y, r1, c85 + temp1.xyz = temp0.yyy * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.z, r1 + temp1.xyz = temp0.zzz * temp1.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // dp3 r1.x, r0.xyww, r0.xyww + temp1.x = dot(temp0.xyw, temp0.xyw); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // slt r1.x, r1.x, c34.w + temp1.x = (temp1.x < float1(0.001)) ? 1 : 0; + // lrp r2.xyz, r1.x, v1, r0.xyww + temp2.xyz = lerp(temp0.xyw, i.texcoord.xyz, temp1.xxx); + // add r0.xyw, r0, v0.xyzz + temp0.xyw = temp0.xyw + i.position.xyz; + // mul r1.xy, r2, r2 + temp1.xy = temp2.xy * temp2.xy; + // add r1.x, r1.y, r1.x + temp1.x = temp1.y + temp1.x; + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mad r1.xz, r2.yyxw, r1.x, c30.zyww + temp1.xz = temp2.yx * temp1.xx + float2(-0, -1); + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r2.y, r1.y, r1.w + temp2.y = temp1.y * temp1.w; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // mul r2.x, r2.z, r1.w + temp2.x = temp2.z * temp1.w; + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // slt r1.w, -r1.w, r1.w + temp1.w = (-temp1.w < temp1.w) ? 1 : 0; + // lrp r3.xz, r1.w, r2.xyyw, -c30.zyww + temp3.xz = lerp(float2(0, 1), temp2.xy, temp1.ww); + // mov r2.xyz, c11[a0.y] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mad r1.w, r2.x, c79.y, c79.x + temp1.w = temp2.x * GeometryUpdate.AngleDampingMin_AngleDampingSpread.y + GeometryUpdate.AngleDampingMin_AngleDampingSpread.x; + // add r2.w, r1.w, c30.w + temp2.w = temp1.w + float1(-1); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // sge r2.w, -r2.w, r2.w + temp2.w = (-temp2.w >= temp2.w) ? 1 : 0; + // lrp r3.w, r2.w, c31.w, r1.w + temp3.w = lerp(temp1.w, float1(1.0001), temp2.w); + // log r1.w, r3.w + temp1.w = log2(temp3.w); + // mul r2.w, r1.w, c32.w + temp2.w = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c30.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mov r4.xyz, c76 + temp4.xyz = GeometryUpdate.AngleSpreads.xyz; + // mad r4.xyz, r2, r4, c75 + temp4.xyz = temp2.xyz * temp4.xyz + GeometryUpdate.AngleMinimums.xyz; + // mov r5.xyz, c78 + temp5.xyz = GeometryUpdate.AngularRateSpreads.xyz; + // mad r5.xyz, r2, r5, c77 + temp5.xyz = temp2.xyz * temp5.xyz + GeometryUpdate.AngularRateMinimums.xyz; + // mad r4.xyz, r5, r1.w, r4 + temp4.xyz = temp5.xyz * temp1.www + temp4.xyz; + // mad r4.xyz, r4, -c33.w, -c33.x + temp4.xyz = temp4.xyz * float3(0.15915494, 0.15915494, 0.15915494) + float3(0.5, 0.5, 0.5); + // frc r4.xyz, r4 + temp4.xyz = frac(temp4.xyz); + // mad r4.xyz, r4, c36.z, c36.w + temp4.xyz = temp4.xyz * float3(6.2831855, 6.2831855, 6.2831855) + float3(-3.1415927, -3.1415927, -3.1415927); + // sincos r5.xy, r4.z, c0, c1 + temp5.xy = float2(cos(temp4.z), sin(temp4.z)); + // sincos r6.xy, r4.y, c0, c1 + temp6.xy = float2(cos(temp4.y), sin(temp4.y)); + // sincos r7.xy, r4.x, c0, c1 + temp7.xy = float2(cos(temp4.x), sin(temp4.x)); + // mul r4.xy, r5, r6.x + temp4.xy = temp5.xy * temp6.xx; + // mul r5, r5.xyxy, r7.yyxx + temp5 = temp5.xyxy * temp7.yyxx; + // mul r6.xz, r6.x, r7.yyxw + temp6.xz = temp6.xx * temp7.yx; + // mov r4.z, -r6.y + temp4.z = -temp6.y; + // mov r3.y, c27.w + temp3.y = float1(0); + // dp3 r7.x, r4, r3 + temp7.x = dot(temp4.xyz, temp3.xyz); + // mad r8.xy, r6.y, r5.xwzw, -r5.wxzw + temp8.xy = temp6.yy * temp5.xw + -temp5.wx; + // mad r5.xy, r6.y, r5.yzzw, r5.zyzw + temp5.xy = temp6.yy * temp5.yz + temp5.zy; + // mov r8.w, r6.x + temp8.w = temp6.x; + // mov r5.w, r6.z + temp5.w = temp6.z; + // mov r8.z, r5.x + temp8.z = temp5.x; + // dp3 r7.y, r8.xzww, r3 + temp7.y = dot(temp8.xzw, temp3.xyz); + // mov r5.z, r8.y + temp5.z = temp8.y; + // dp3 r7.z, r5.yzww, r3 + temp7.z = dot(temp5.yzw, temp3.xyz); + // mov r6.xyz, c74 + temp6.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r6.xyz, r2, r6, c73 + temp6.xyz = temp2.xyz * temp6.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r9.xyz, r6, c30.w + temp9.xyz = temp6.xyz + float3(-1, -1, -1); + // mul r9.xyz, r9, r9 + temp9.xyz = temp9.xyz * temp9.xyz; + // sge r9.xyz, -r9, r9 + temp9.xyz = (-temp9.xyz >= temp9.xyz) ? 1 : 0; + // lrp r10.xyz, r9, c31.w, r6 + temp10.xyz = lerp(temp6.xyz, float3(1.0001, 1.0001, 1.0001), temp9.xyz); + // log r6.x, r10.x + temp6.x = log2(temp10.x); + // log r6.y, r10.y + temp6.y = log2(temp10.y); + // log r6.z, r10.z + temp6.z = log2(temp10.z); + // mul r9.xyz, r0.z, r6 + temp9.xyz = temp0.zzz * temp6.xyz; + // mul r6.xyz, r6, c32.w + temp6.xyz = temp6.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // exp r10.x, r9.x + temp10.x = exp2(temp9.x); + // exp r10.y, r9.y + temp10.y = exp2(temp9.y); + // exp r10.z, r9.z + temp10.z = exp2(temp9.z); + // add r9.xyz, r10, c30.w + temp9.xyz = temp10.xyz + float3(-1, -1, -1); + // rcp r10.x, r6.x + temp10.x = 1.0f / temp6.x; + // rcp r10.y, r6.y + temp10.y = 1.0f / temp6.y; + // rcp r10.z, r6.z + temp10.z = 1.0f / temp6.z; + // mul r6.xyz, r9, r10 + temp6.xyz = temp9.xyz * temp10.xyz; + // mov r9.xyz, c70 + temp9.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r9.xyz, r2, r9, c69 + temp9.xyz = temp2.xyz * temp9.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r10.xyz, c72 + temp10.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r2.xyz, r2, r10, c71 + temp2.xyz = temp2.xyz * temp10.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mad r2.xyz, r2, r6, r9 + temp2.xyz = temp2.xyz * temp6.xyz + temp9.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mul r2.xyz, r2, c27[a0.x] + temp2.xyz = temp2.xyz * float3(0.5, 0.5, -0); + // dp3 r6.z, r2, r7 + temp6.z = dot(temp2.xyz, temp7.xyz); + // mad r1.xy, r1.y, r1.xzzw, -c30.zwzw + temp1.xy = temp1.yy * temp1.xz + float2(0, 1); + // mul r3.xy, -r3.x, r1.yxzw + temp3.xy = -temp3.xx * temp1.yx; + // mul r7.xy, r3.z, r1.yxzw + temp7.xy = temp3.zz * temp1.yx; + // mov r7.w, r3.x + temp7.w = temp3.x; + // mov r1.w, r3.y + temp1.w = temp3.y; + // mov r7.z, -r1.x + temp7.z = -temp1.x; + // dp3 r3.x, r4, r7.xzww + temp3.x = dot(temp4.xyz, temp7.xzw); + // dp3 r3.y, r8.xzww, r7.xzww + temp3.y = dot(temp8.xzw, temp7.xzw); + // dp3 r3.z, r5.yzww, r7.xzww + temp3.z = dot(temp5.yzw, temp7.xzw); + // mov r1.z, r7.y + temp1.z = temp7.y; + // dp3 r6.x, r2, r3 + temp6.x = dot(temp2.xyz, temp3.xyz); + // dp3 r3.y, r8.zxww, r1.yzww + temp3.y = dot(temp8.zxw, temp1.yzw); + // dp3 r3.z, r5.zyww, r1.yzww + temp3.z = dot(temp5.zyw, temp1.yzw); + // dp3 r3.x, r4.yxzw, r1.yzww + temp3.x = dot(temp4.yxz, temp1.yzw); + // dp3 r6.y, r2, r3 + temp6.y = dot(temp2.xyz, temp3.xyz); + // add r1.xyz, r0.xyww, r6 + temp1.xyz = temp0.xyw + temp6.xyz; + // mov r1.w, -c30.w + temp1.w = float1(1); + // dp4 oPos.x, r1, c80 + o.position.x = dot(temp1, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c81 + o.position.y = dot(temp1, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c83 + temp0.y = dot(temp1, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c82 + temp0.x = dot(temp1, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.w + o.texcoord1 = temp0.x * temp0.w; + // mov r0.x, c58.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r0.x, c11[a0.w].x + temp0.y = temp0.x * float1(0.957897); + // mul r0.x, r0.x, c11[a0.z].x + temp0.x = temp0.x * float1(0.957897); + // frc r0.w, r0.y + temp0.w = frac(temp0.y); + // add r1.x, r0.y, -r0.w + temp1.x = temp0.y + -temp0.w; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r1.y, r0.y, r0.w, r1.x + temp1.y = temp0.y * temp0.w + temp1.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.w, r0.x, -r0.y + temp0.w = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r1.z, r0.x, r0.y, r0.w + temp1.z = temp0.x * temp0.y + temp0.w; + // add r0.xy, r1.yzzw, c35[a0.x] + temp0.xy = temp1.yz + float2(0, 0); + // mov r2.z, c27.w + temp2.z = float1(0); + // mul r0.w, r0.z, c67.x + temp0.w = temp0.z * Draw.SpeedMultiplier.x; + // min r1.x, r0.w, c46.x + temp1.x = min(temp0.w, expr46.x); + // mul r0.w, r0.w, c54.x + temp0.w = temp0.w * expr54.x; + // frc r2.xy, r1.x + temp2.xy = frac(temp1.x); + // add r1.xyz, r1.xxzw, -r2 + temp1.xyz = temp1.xxz + -temp2.xyz; + // add r1.yz, r1, c35[a0.x].xxyw + temp1.yz = temp1.yz + float2(0, 0); + // abs r2.x, r0.w + temp2.x = abs(temp0.w); + // sge r0.w, r0.w, -r0.w + temp0.w = (temp0.w >= -temp0.w) ? 1 : 0; + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // lrp r3.x, r0.w, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.w); + // mul r0.w, r3.x, c58.y + temp0.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.w, c52.x + temp2.y = temp0.w * expr52.x; + // abs r0.w, r2.y + temp0.w = abs(temp2.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.w, -r0.w + temp3.x = lerp(-temp0.w, temp0.w, temp2.z); + // mul r2.x, r3.x, c58.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c35[a0.x] + temp2.xy = temp2.xy + float2(0, 0); + // mul r2.xy, r2, c52.x + temp2.xy = temp2.xy * expr52.xx; + // mad r1.yz, r1, c52.x, -r2.xxyw + temp1.yz = temp1.yz * expr52.xx + -temp2.xy; + // mad r1.yz, c55.x, r1, r2.xxyw + temp1.yz = expr55.xx * temp1.yz + temp2.xy; + // mad r0.xy, r0, c52.x, -r1.yzzw + temp0.xy = temp0.xy * expr52.xx + -temp1.yz; + // mad r0.xy, c56.x, r0, r1.yzzw + temp0.xy = expr56.xx * temp0.xy + temp1.yz; + // mov r1.w, c51.x + temp1.w = expr51.x; + // add r1.xy, r1.xwzw, c35[a0.x] + temp1.xy = temp1.xw + float2(0, 0); + // mad r1.xy, r1, c52.x, -r0 + temp1.xy = temp1.xy * expr52.xx + -temp0.xy; + // mad oT0.xy, c57.x, r1, r0 + o.texcoord = expr57.x * temp1 + temp0; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c61 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c62 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c63 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c64 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c65 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c59 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c60 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // lrp r1, r0.y, r3, r4 + temp1 = lerp(temp4, temp3, temp0.y); + // mad r0.x, v2.x, c37.z, c37.w + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c29.w + temp0.x = temp0.x * float1(16); + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.x, r0.x, -r0.y + temp0.x = temp0.x + -temp0.y; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.xy, c68 + temp0.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // mul oD0, r1, r0.x + o.color = temp1 * temp0.x; + // + + return o; +} + +// VS_Array_L_Shader_2 Vertex_2_0 Has PRES True +struct VS_Array_L_Shader_2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct VS_Array_L_Shader_2_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +VS_Array_L_Shader_2_Output VS_Array_L_Shader_2(VS_Array_L_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 45 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 45 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 51 ConstInput 2 + 1 - ConstOutput: 54 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + float4 expr57; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c45.x, c1.x, (30) + expr45.x = Time.x * (30); + // add c46.x, c0.x, (-1) + expr46.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c56.x, r1.x, r0.y + expr56.x = temp1.x < temp0.y; + // mul c57.x, r0.x, r2.x + expr57.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c51.x, r2.z, r0.x + expr51.x = temp2.z + temp0.x; + // rcp c52.x, c0.x + expr52.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c55.x, r0.x, r1.x + expr55.x = temp0.x >= temp1.x; + // rcp c54.x, c0.y + expr54.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + VS_Array_L_Shader_2_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + // def c44, 8.9375, 2.0625, 1.375, 4.8125 + // def c29, -0.5, -0.5, -0, 16 + // def c30, -0.5, 0.5, -0, -1 + // def c36, 0, 1, 6.283185, -3.141593 + // def c37, 1, 1, 0.1875, 2.75 + // def c31, 0.5, -0, 0.5, 1.0001 + // def c28, 0.5, -0.5, -0, 0.1875 + // def c32, 0.5, -0, -0.5, 0.6931472 + // def c27, 0.5, 0.5, -0, 0 + // def c33, -0.5, -0, -0.5, -0.1591549 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c34, -0.5, -0, 0.5, 0 + // def c35, 0, 0, 0, 0 + // def c38, 1, 0, 0, 0 + // def c39, 0, 0, 0, 0 + // def c40, 0, 1, 0, 0 + // def c41, 1, 1, 0, 0 + // def c42, 1, 0, 0, 0 + // def c43, 0, 0, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c28.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c44 + temp0 = i.texcoord1.x * temp0.w + float4(8.9375, 2.0625, 1.375, 4.8125); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c29.w + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xyz, c11[a0.y] + temp0.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r1.xyz, c74 + temp1.xyz = GeometryUpdate.SizeDampingSpreads.xyz; + // mad r1.xyz, r0, r1, c73 + temp1.xyz = temp0.xyz * temp1.xyz + GeometryUpdate.SizeDampingMinimums.xyz; + // add r2.xyz, r1, c30.w + temp2.xyz = temp1.xyz + float3(-1, -1, -1); + // mul r2.xyz, r2, r2 + temp2.xyz = temp2.xyz * temp2.xyz; + // sge r2.xyz, -r2, r2 + temp2.xyz = (-temp2.xyz >= temp2.xyz) ? 1 : 0; + // lrp r3.xyz, r2, c31.w, r1 + temp3.xyz = lerp(temp1.xyz, float3(1.0001, 1.0001, 1.0001), temp2.xyz); + // log r1.x, r3.x + temp1.x = log2(temp3.x); + // log r1.y, r3.y + temp1.y = log2(temp3.y); + // log r1.z, r3.z + temp1.z = log2(temp3.z); + // mul r2.xyz, r1, c32.w + temp2.xyz = temp1.xyz * float3(0.6931472, 0.6931472, 0.6931472); + // rcp r3.x, r2.x + temp3.x = 1.0f / temp2.x; + // rcp r3.y, r2.y + temp3.y = 1.0f / temp2.y; + // rcp r3.z, r2.z + temp3.z = 1.0f / temp2.z; + // add r0.w, -v1.w, c45.x + temp0.w = -i.texcoord.w + expr45.x; + // mul r1.xyz, r1, r0.w + temp1.xyz = temp1.xyz * temp0.www; + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // add r1.xyz, r2, c30.w + temp1.xyz = temp2.xyz + float3(-1, -1, -1); + // mul r1.xyz, r3, r1 + temp1.xyz = temp3.xyz * temp1.xyz; + // mov r2.xyz, c70 + temp2.xyz = GeometryUpdate.StartSizeSpreads.xyz; + // mad r2.xyz, r0, r2, c69 + temp2.xyz = temp0.xyz * temp2.xyz + GeometryUpdate.StartSizeMinimums.xyz; + // mov r3.xyz, c72 + temp3.xyz = GeometryUpdate.SizeRateSpreads.xyz; + // mad r3.xyz, r0, r3, c71 + temp3.xyz = temp0.xyz * temp3.xyz + GeometryUpdate.SizeRateMinimums.xyz; + // mad r1.xyz, r3, r1, r2 + temp1.xyz = temp3.xyz * temp1.xyz + temp2.xyz; + // frc r1.w, v2.y + temp1.w = frac(i.texcoord1.y); + // add r1.w, -r1.w, v2.y + temp1.w = -temp1.w + i.texcoord1.y; + // mova a0.y, r1.w + addr0.y = temp1.w; + // mul r1.xyz, r1, c27[a0.y] + temp1.xyz = temp1.xyz * float3(0.5, 0.5, -0); + // mad r1.w, r0.x, c79.y, c79.x + temp1.w = temp0.x * GeometryUpdate.AngleDampingMin_AngleDampingSpread.y + GeometryUpdate.AngleDampingMin_AngleDampingSpread.x; + // add r2.x, r1.w, c30.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c31.w, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c32.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.w, r1.w + temp1.w = temp0.w * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c30.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mov r2.xyz, c76 + temp2.xyz = GeometryUpdate.AngleSpreads.xyz; + // mad r2.xyz, r0, r2, c75 + temp2.xyz = temp0.xyz * temp2.xyz + GeometryUpdate.AngleMinimums.xyz; + // mov r3.xyz, c78 + temp3.xyz = GeometryUpdate.AngularRateSpreads.xyz; + // mad r0.xyz, r0, r3, c77 + temp0.xyz = temp0.xyz * temp3.xyz + GeometryUpdate.AngularRateMinimums.xyz; + // mad r0.xyz, r0, r1.w, r2 + temp0.xyz = temp0.xyz * temp1.www + temp2.xyz; + // mad r0.xyz, r0, -c33.w, -c33.x + temp0.xyz = temp0.xyz * float3(0.15915494, 0.15915494, 0.15915494) + float3(0.5, 0.5, 0.5); + // frc r0.xyz, r0 + temp0.xyz = frac(temp0.xyz); + // mad r0.xyz, r0, c36.z, c36.w + temp0.xyz = temp0.xyz * float3(6.2831855, 6.2831855, 6.2831855) + float3(-3.1415927, -3.1415927, -3.1415927); + // sincos r2.xy, r0.x, c0, c1 + temp2.xy = float2(cos(temp0.x), sin(temp0.x)); + // sincos r3.xy, r0.z, c0, c1 + temp3.xy = float2(cos(temp0.z), sin(temp0.z)); + // sincos r4.xy, r0.y, c0, c1 + temp4.xy = float2(cos(temp0.y), sin(temp0.y)); + // mul r5, r2.yyxx, r3.xyxy + temp5 = temp2.yyxx * temp3.xyxy; + // mul r0.yz, r2.xyxw, r4.x + temp0.yz = temp2.yx * temp4.xx; + // mul r2.xy, r3, r4.x + temp2.xy = temp3.xy * temp4.xx; + // mad r3.xy, r4.y, r5.xwzw, -r5.wxzw + temp3.xy = temp4.yy * temp5.xw + -temp5.wx; + // mad r5.xy, r4.y, r5.yzzw, r5.zyzw + temp5.xy = temp4.yy * temp5.yz + temp5.zy; + // mov r0.x, -r4.y + temp0.x = -temp4.y; + // mov r2.z, r3.x + temp2.z = temp3.x; + // mov r5.w, r3.y + temp5.w = temp3.y; + // mov r2.w, r5.y + temp2.w = temp5.y; + // dp3 r2.x, r1, r2.xzww + temp2.x = dot(temp1.xyz, temp2.xzw); + // mov r5.z, r2.y + temp5.z = temp2.y; + // dp3 r2.z, r1.yxzw, r5.xzww + temp2.z = dot(temp1.yxz, temp5.xzw); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // mov r0.xy, c86 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c30.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c31.w, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c32.w + temp0.y = temp0.x * float1(0.6931472); + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c30.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r0.y, r0.w, c27.x + temp0.y = temp0.w * float1(0.5); + // mov r1.xyz, c84 + temp1.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r0.y, r1, c85 + temp1.xyz = temp0.yyy * temp1.xyz + Physics.DriftVelocity.xyz; + // mul r1.xyz, r0.w, r1 + temp1.xyz = temp0.www * temp1.xyz; + // mad r0.xyz, v1, r0.x, r1 + temp0.xyz = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // add r0.xyz, r0, v0 + temp0.xyz = temp0.xyz + i.position.xyz; + // add r1.xyz, r2.xzww, r0 + temp1.xyz = temp2.xzw + temp0.xyz; + // mov r1.w, -c30.w + temp1.w = float1(1); + // dp4 oPos.x, r1, c80 + o.position.x = dot(temp1, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c81 + o.position.y = dot(temp1, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c83 + temp0.y = dot(temp1, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c82 + temp0.x = dot(temp1, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mov r0.x, c58.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r0.x, c11[a0.w].x + temp0.y = temp0.x * float1(0.957897); + // mul r0.x, r0.x, c11[a0.z].x + temp0.x = temp0.x * float1(0.957897); + // frc r0.z, r0.y + temp0.z = frac(temp0.y); + // add r1.x, r0.y, -r0.z + temp1.x = temp0.y + -temp0.z; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r0.z, -r0.z, r0.z + temp0.z = (-temp0.z < temp0.z) ? 1 : 0; + // mad r1.y, r0.y, r0.z, r1.x + temp1.y = temp0.y * temp0.z + temp1.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r1.z, r0.x, r0.y, r0.z + temp1.z = temp0.x * temp0.y + temp0.z; + // add r0.xy, r1.yzzw, c35[a0.y] + temp0.xy = temp1.yz + float2(0, 0); + // mov r2.z, c27.w + temp2.z = float1(0); + // mul r0.z, r0.w, c67.x + temp0.z = temp0.w * Draw.SpeedMultiplier.x; + // min r1.x, r0.z, c46.x + temp1.x = min(temp0.z, expr46.x); + // mul r0.z, r0.z, c54.x + temp0.z = temp0.z * expr54.x; + // frc r2.xy, r1.x + temp2.xy = frac(temp1.x); + // add r1.xyz, r1.xxzw, -r2 + temp1.xyz = temp1.xxz + -temp2.xyz; + // add r1.yz, r1, c35[a0.y].xxyw + temp1.yz = temp1.yz + float2(0, 0); + // abs r2.x, r0.z + temp2.x = abs(temp0.z); + // sge r0.z, r0.z, -r0.z + temp0.z = (temp0.z >= -temp0.z) ? 1 : 0; + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // lrp r3.x, r0.z, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.z); + // mul r0.z, r3.x, c58.y + temp0.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.y, r0.z, c52.x + temp2.y = temp0.z * expr52.x; + // abs r0.z, r2.y + temp0.z = abs(temp2.y); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // sge r2.z, r2.y, -r2.y + temp2.z = (temp2.y >= -temp2.y) ? 1 : 0; + // lrp r3.x, r2.z, r0.z, -r0.z + temp3.x = lerp(-temp0.z, temp0.z, temp2.z); + // mul r2.x, r3.x, c58.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r2.xyxy + temp2.zw = frac(temp2.xy); + // add r2.xy, r2, -r2.zwzw + temp2.xy = temp2.xy + -temp2.zw; + // add r2.xy, r2, c35[a0.y] + temp2.xy = temp2.xy + float2(0, 0); + // mul r2.xy, r2, c52.x + temp2.xy = temp2.xy * expr52.xx; + // mad r1.yz, r1, c52.x, -r2.xxyw + temp1.yz = temp1.yz * expr52.xx + -temp2.xy; + // mad r1.yz, c55.x, r1, r2.xxyw + temp1.yz = expr55.xx * temp1.yz + temp2.xy; + // mad r0.xy, r0, c52.x, -r1.yzzw + temp0.xy = temp0.xy * expr52.xx + -temp1.yz; + // mad r0.xy, c56.x, r0, r1.yzzw + temp0.xy = expr56.xx * temp0.xy + temp1.yz; + // mov r1.w, c51.x + temp1.w = expr51.x; + // add r1.xy, r1.xwzw, c35[a0.y] + temp1.xy = temp1.xw + float2(0, 0); + // mad r1.xy, r1, c52.x, -r0 + temp1.xy = temp1.xy * expr52.xx + -temp0.xy; + // mad oT0.xy, c57.x, r1, r0 + o.texcoord = expr57.x * temp1 + temp0; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.w, r0.x + temp0.x = temp0.w * temp0.x; + // mov r1, c61 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c62 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c63 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c64 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c65 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c59 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c60 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // lrp r1, r0.y, r3, r4 + temp1 = lerp(temp4, temp3, temp0.y); + // mad r0.x, v2.x, c37.z, c37.w + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c29.w + temp0.x = temp0.x * float1(16); + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.x, r0.x, -r0.y + temp0.x = temp0.x + -temp0.y; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.xy, c68 + temp0.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // mul oD0, r1, r0.x + o.color = temp1 * temp0.x; + // + + return o; +} + +VertexShader VS_Array_L[3] = { + compile vs_2_0 VS_Array_L_Shader_0(), // 43 + compile vs_2_0 VS_Array_L_Shader_1(), // 44 + compile vs_2_0 VS_Array_L_Shader_2(), // 45 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord2 : TEXCOORD2) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t2.x + // mov r0, t2.x + temp0 = texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 52 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 53 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 54 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 55 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 56 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 57 +}; +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader23 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader23_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader23_Output +{ + float4 position : POSITION; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +_CreateShadowMap_VertexShader23_Output _CreateShadowMap_VertexShader23(_CreateShadowMap_VertexShader23_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + _CreateShadowMap_VertexShader23_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.w, c27[a0.y].x, -r2.y, r1.w + temp1.w = float1(-0.5) * -temp2.y + temp1.w; + // mov r2.xy, c27[a0.y] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c37, c37.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // mul r3.xyz, r1.w, c79 + temp3.xyz = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r1.yzw, r1.y, c78.xxyz, r3.xxyz + temp1.yzw = temp1.yyy * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c66 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c65 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.z, r3.z, c28.w + temp2.z = temp3.z + float1(-1); + // mul r2.z, r2.z, r2.z + temp2.z = temp2.z * temp2.z; + // sge r2.z, -r2.z, r2.z + temp2.z = (-temp2.z >= temp2.z) ? 1 : 0; + // lrp r4.x, r2.z, c29.z, r3.z + temp4.x = lerp(temp3.z, float1(1.0001), temp2.z); + // log r2.z, r4.x + temp2.z = log2(temp4.x); + // mul r2.w, r2.z, c29.w + temp2.w = temp2.z * float1(0.6931472); + // mul r2.z, r0.z, r2.z + temp2.z = temp0.z * temp2.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r2.z, r2.z + temp2.z = exp2(temp2.z); + // add r2.z, r2.z, c28.w + temp2.z = temp2.z + float1(-1); + // mul r2.z, r2.w, r2.z + temp2.z = temp2.w * temp2.z; + // mad r2.z, r3.y, r2.z, r3.x + temp2.z = temp3.y * temp2.z + temp3.x; + // mad r3.xyz, r2.z, r1.yzww, r0.xyww + temp3.xyz = temp2.zzz * temp1.yzw + temp0.xyw; + // mov r3.w, -c28.w + temp3.w = float1(1); + // dp4 oPos.x, r3, c71 + o.position.x = dot(temp3, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r3, c72 + o.position.y = dot(temp3, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r3, c74 + temp0.y = dot(temp3, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r3, c73 + temp0.x = dot(temp3, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r3.x, r0.x, c40.x + temp3.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r2.z, r1.y, r0.w, -r0.w + temp2.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r2.z, c54.x + temp0.x = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r2, r0 + temp0.xy = temp2.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r3.w, r1.x, r1.y, r1.z + temp3.w = temp1.x * temp1.y + temp1.z; + // mov r1.yw, c27.z + temp1.yw = float2(0, 0); + // mul r2.z, r0.z, c63.x + temp2.z = temp0.z * Draw.SpeedMultiplier.x; + // min r3.y, r2.z, c40.x + temp3.y = min(temp2.z, expr40.x); + // frc r1.xz, r3.yyxw + temp1.xz = frac(temp3.yx); + // add r1, r3.ywxw, -r1 + temp1 = temp3.ywxw + -temp1; + // add r1, r2.xyxy, r1 + temp1 = temp2.xyxy + temp1; + // mul r4.xy, r1.zwzw, c46.x + temp4.xy = temp1.zw * expr46.xx; + // frc r0.w, r2.z + temp0.w = frac(temp2.z); + // mul r1.z, r2.z, c50.x + temp1.z = temp2.z * expr50.x; + // frc r4.zw, r3.xyyx + temp4.zw = frac(temp3.yx); + // add r5.xz, r3.yyxw, -r4.zyww + temp5.xz = temp3.yx + -temp4.zw; + // lrp r6.xyz, c51.x, r4, r0.xyww + temp6.xyz = lerp(temp0.xyw, temp4.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r2.zw, r0.xyxy + temp2.zw = frac(temp0.xy); + // add r0.xy, r0, -r2.zwzw + temp0.xy = temp0.xy + -temp2.zw; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r3.xy, c64 + temp3.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r3.y, r3.x + temp0.y = float1(0.957897) * temp3.y + temp3.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.w, r0.x, -r0.w + temp1.w = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r3.z, r0.x, r0.w, r1.w + temp3.z = temp0.x * temp0.w + temp1.w; + // add r0.xw, r2.xyzy, r3.zyzw + temp0.xw = temp2.xy + temp3.zw; + // mul r3.xy, r0.xwzw, c46.x + temp3.xy = temp0.xw * expr46.xx; + // mov r3.z, c27.z + temp3.z = float1(0); + // lrp r7.xyz, c52.x, r3, r6 + temp7.xyz = lerp(temp6.xyz, temp3.xyz, expr52.xxx); + // mov r5.w, c48.x + temp5.w = expr48.x; + // add r2.zw, r2.xyxy, r5 + temp2.zw = temp2.xy + temp5.zw; + // mul r4.xy, r2.zwzw, c46.x + temp4.xy = temp2.zw * expr46.xx; + // add r3.xyz, r4, -r7 + temp3.xyz = temp4.xyz + -temp7.xyz; + // mad oT3.xyz, c53.x, r3, r7 + o.texcoord3 = expr53.x * temp3 + temp7; + // abs r1.w, r1.z + temp1.w = abs(temp1.z); + // sge r1.z, r1.z, -r1.z + temp1.z = (temp1.z >= -temp1.z) ? 1 : 0; + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // lrp r2.z, r1.z, r1.w, -r1.w + temp2.z = lerp(-temp1.w, temp1.w, temp1.z); + // mul r1.z, r2.z, c54.y + temp1.z = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.z, r1.w + temp2.z = abs(temp1.w); + // frc r2.z, r2.z + temp2.z = frac(temp2.z); + // sge r2.w, r1.w, -r1.w + temp2.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r1.z, r3.x, c54.x + temp1.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1 + temp2.zw = frac(temp1.zw); + // add r1.zw, r1, -r2 + temp1.zw = temp1.zw + -temp2.zw; + // add r1.zw, r2.xyxy, r1 + temp1.zw = temp2.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r5.y, c45.x + temp5.y = expr45.x; + // add r1.xy, r2, r5 + temp1.xy = temp2.xy + temp5.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, c27.z + o.texcoord1 = float4(0, 0, 0, 0); + // + + return o; +} + +// Default_L_PixelShader24 Pixel_2_0 Has PRES False +struct Default_L_PixelShader24_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 Default_L_PixelShader24(Default_L_PixelShader24_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_L_Expression25 Expression_2_0 Has PRES False +float Default_L_Expression25() +{ + float1 expr0; + // add c0.x, c11.x, (-1) + expr0.x = GeometryUpdate.RotationType.x + (-1); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c8.x, (-3) + temp0.x = Draw.ShaderType.x + (-3); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, (-2) + temp0.x = temp2.x + (-2); + // mul r1.x, r0.x, c9.x + temp1.x = temp0.x * ShouldDrawParticleSoft.x; + // add r0.x, r1.x, (2) + temp0.x = temp1.x + (2); + // mul c0.x, r0.x, (3) + expr0.x = temp0.x * (3); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // add c0.x, c11.x, (-1) + expr0.x = GeometryUpdate.RotationType.x + (-1); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array_H[Default_Expression27()]; // 47 + PixelShader = PS_Array_H[Default_Expression26()]; // 48 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass P0 + { + VertexShader = VS_Array_L[Default_L_Expression25()]; // 50 + PixelShader = compile ps_2_0 Default_L_PixelShader24(); // 51 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader23(); // 59 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 60 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/gpuparticleunderwater.fx b/gpuparticleunderwater.fx new file mode 100644 index 0000000..d74a4cc --- /dev/null +++ b/gpuparticleunderwater.fx @@ -0,0 +1,3511 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_2_0, c54) : register(vs_3_0, c57) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_2_0, c75) : register(vs_3_0, c82) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c65) : register(vs_3_0, c68) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture DepthLutSampler ; // 8 +sampler2D DepthLutSamplerSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CausticSampler ; // 15 +sampler2D CausticSamplerSampler = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +texture ParticleTextureSampler ; // 24 +sampler2D ParticleTextureSamplerSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 27 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 31 +sampler2D NextFrameTextureSamplerSampler : register(ps_2_0, s2) : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 34 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture DepthTexture ; // 38 +sampler2D DepthTextureSampler : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 40 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +bool ShouldDrawParticleSoft ; +column_major float4x4 WorldView : WorldView : register(vs_3_0, c74); +column_major float4x4 Projection : Projection : register(vs_3_0, c78); +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c71); +column_major float4x3 View : View : register(vs_2_0, c78) : register(vs_3_0, c85); +row_major float4x4 ProjectionI : ProjectionInverse; +float Time : Time; +// PS_Array_H_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_0(PS_Array_H_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, 0 + // def c1, -0.005, 0, 1.005, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_texcoord6 v5.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v4.y, v4.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v2, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v2.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c0.z + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mad r1, v5.z, c1.xxyy, c1.zzyy + temp1 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r1, r1, s0 + temp1 = tex2Dlod(DepthLutSamplerSampler, temp1); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul oC0.xyz, r0, r2 + out_color.xyz = temp0.xyz * temp2.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_1(PS_Array_H_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, -1 + // def c1, -0.005, 0, 1.005, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c0.z + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mad r1, v6.z, c1.xxyy, c1.zzyy + temp1 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r1, r1, s0 + temp1 = tex2Dlod(DepthLutSamplerSampler, temp1); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c0.w + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, -c0.w + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_2(PS_Array_H_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, 0 + // def c1, -0.005, 0, 1.005, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mov oC0.w, r1.w + out_color.w = temp1.w; + // mul r0.yzw, r0, c0.z + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mad r1, v6.z, c1.xxyy, c1.zzyy + temp1 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r1, r1, s0 + temp1 = tex2Dlod(DepthLutSamplerSampler, temp1); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_3(PS_Array_H_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, 0 + // def c1, -0.005, 0, 1.005, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord4 v3.xyw + // dcl_texcoord5 v4.xy + // dcl_texcoord6 v5.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v3.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v3 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v4.y, v4.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v2, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v2.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // log r0.y, r1.y + temp0.y = log2(temp1.y); + // log r0.z, r1.z + temp0.z = log2(temp1.z); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mad r0, v5.z, c1.xxyy, c1.zzyy + temp0 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r0, r0, s0 + temp0 = tex2Dlod(DepthLutSamplerSampler, temp0); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul oC0.xyz, r1, r2 + out_color.xyz = temp1.xyz * temp2.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_4(PS_Array_H_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, -1 + // def c1, -0.005, 0, 1.005, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // log r0.y, r1.y + temp0.y = log2(temp1.y); + // log r0.z, r1.z + temp0.z = log2(temp1.z); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mad r0, v6.z, c1.xxyy, c1.zzyy + temp0 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r0, r0, s0 + temp0 = tex2Dlod(DepthLutSamplerSampler, temp0); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mad r0.xyz, r1, r2, c0.w + temp0.xyz = temp1.xyz * temp2.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, -c0.w + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_5(PS_Array_H_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.5, -0.5, 2.2, 0 + // def c1, -0.005, 0, 1.005, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord4 v4.xyw + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // rcp r0.x, v4.w + temp0.x = 1.0f / i.texcoord4.w; + // mul r0.xy, r0.x, v4 + temp0.xy = temp0.xx * i.texcoord4.xy; + // mad r0.xy, r0, c0, c0.x + temp0.xy = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // texld r0, r0, s3 + temp0 = tex2D(DepthTextureSampler, temp0.xy); + // mad_sat r0.x, r0.x, -v5.y, v5.x + temp0.x = saturate(temp0.x * -i.texcoord5.y + i.texcoord5.x); + // texld r1, v0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v1 + temp1 = temp3 * i.color; + // mul oC0.w, r0.x, r1.w + out_color.w = temp0.x * temp1.w; + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // log r0.y, r1.y + temp0.y = log2(temp1.y); + // log r0.z, r1.z + temp0.z = log2(temp1.z); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mad r0, v6.z, c1.xxyy, c1.zzyy + temp0 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r0, r0, s0 + temp0 = tex2Dlod(DepthLutSamplerSampler, temp0); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_6_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_6(PS_Array_H_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp2, temp3; + float3 temp1; + // def c0, 2.2, -0.005, 0, 1.005 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_texcoord6 v3.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mad r0, v3.z, c0.yyzz, c0.wwzz + temp0 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r0, r0, s0 + temp0 = tex2Dlod(DepthLutSamplerSampler, temp0); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // texld r0, v0, s1 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v2, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v2.z, r2, r0 + temp3 = lerp(temp0, temp2, i.texcoord3.z); + // mul r0, r3, v1 + temp0 = temp3 * i.color; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul oC0.xyz, r1, r2 + out_color.xyz = temp1.xyz * temp2.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_7_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_7(PS_Array_H_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp2, temp3; + float3 temp1; + // def c0, -1, 1, 0, 0 + // def c1, 2.2, -0.005, 0, 1.005 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord6 v4.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mad r0, v4.z, c1.yyzz, c1.wwzz + temp0 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r0, r0, s0 + temp0 = tex2Dlod(DepthLutSamplerSampler, temp0); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // texld r0, v0, s1 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r0 + temp3 = lerp(temp0, temp2, i.texcoord3.z); + // mul r0, r3, v1 + temp0 = temp3 * i.color; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r2, c1.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mad r0.xyz, r2, r1, c0.x + temp0.xyz = temp2.xyz * temp1.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.y + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_8_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_H_Shader_8(PS_Array_H_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp2, temp3; + float3 temp1; + // def c0, 2.2, -0.005, 0, 1.005 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_texcoord6 v4.z + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mad r0, v4.z, c0.yyzz, c0.wwzz + temp0 = i.texcoord6.z * float4(-0.005, -0.005, 0, 0) + float4(1.005, 1.005, 0, 0); + // texldl r0, r0, s0 + temp0 = tex2Dlod(DepthLutSamplerSampler, temp0); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // texld r0, v0, s1 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, v3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, v3.z, r2, r0 + temp3 = lerp(temp0, temp2, i.texcoord3.z); + // mul r0, r3, v1 + temp0 = temp3 * i.color; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array_H[9] = { + compile ps_3_0 PS_Array_H_Shader_0(), // 45 + compile ps_3_0 PS_Array_H_Shader_1(), // 46 + compile ps_3_0 PS_Array_H_Shader_2(), // 47 + compile ps_3_0 PS_Array_H_Shader_3(), // 48 + compile ps_3_0 PS_Array_H_Shader_4(), // 49 + compile ps_3_0 PS_Array_H_Shader_5(), // 50 + compile ps_3_0 PS_Array_H_Shader_6(), // 51 + compile ps_3_0 PS_Array_H_Shader_7(), // 52 + compile ps_3_0 PS_Array_H_Shader_8(), // 53 +}; +// PS_Array_M_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; +}; + +float4 PS_Array_M_Shader_0(PS_Array_M_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 201, 0.005, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t3.xyz + // dcl t4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.w, -t4.z, c0.x + temp0.w = -i.texcoord4.z + float1(201); + // mul r0.xy, r0.w, c0.y + temp0.xy = temp0.ww * float2(0.005, 0.005); + // texld r0, r0, s0 + temp0 = tex2D(DepthLutSamplerSampler, temp0.xy); + // texld r1, t0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, t3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, t3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v0 + temp1 = temp3 * i.color; + // mul r1.xyz, r0, r1 + temp1.xyz = temp0.xyz * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_M_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; +}; + +float4 PS_Array_M_Shader_1(PS_Array_M_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 201, 0.005, -1, 1 + // dcl t0.xy + // dcl v0 + // dcl t1.xyz + // dcl t3.xyz + // dcl t4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.w, -t4.z, c0.x + temp0.w = -i.texcoord4.z + float1(201); + // mul r0.xy, r0.w, c0.y + temp0.xy = temp0.ww * float2(0.005, 0.005); + // texld r0, r0, s0 + temp0 = tex2D(DepthLutSamplerSampler, temp0.xy); + // texld r1, t0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, t3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, t3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v0 + temp1 = temp3 * i.color; + // mad r0.xyz, r1, r0, c0.z + temp0.xyz = temp1.xyz * temp0.xyz + float3(-1, -1, -1); + // mov_sat r2.xyz, t1 + temp2.xyz = saturate(i.texcoord1.xyz); + // mad r1.xyz, r2, r0, c0.w + temp1.xyz = temp2.xyz * temp0.xyz + float3(1, 1, 1); + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_M_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; +}; + +float4 PS_Array_M_Shader_2(PS_Array_M_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 201, 0.005, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t1.xyz + // dcl t3.xyz + // dcl t4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.w, -t4.z, c0.x + temp0.w = -i.texcoord4.z + float1(201); + // mul r0.xy, r0.w, c0.y + temp0.xy = temp0.ww * float2(0.005, 0.005); + // texld r0, r0, s0 + temp0 = tex2D(DepthLutSamplerSampler, temp0.xy); + // texld r1, t0, s1 + temp1 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r2, t3, s2 + temp2 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r3, t3.z, r2, r1 + temp3 = lerp(temp1, temp2, i.texcoord3.z); + // mul r1, r3, v0 + temp1 = temp3 * i.color; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov_sat r2.xyz, t1 + temp2.xyz = saturate(i.texcoord1.xyz); + // mul r1.xyz, r0, r2 + temp1.xyz = temp0.xyz * temp2.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_Array_M[3] = { + compile ps_2_0 PS_Array_M_Shader_0(), // 57 + compile ps_2_0 PS_Array_M_Shader_1(), // 58 + compile ps_2_0 PS_Array_M_Shader_2(), // 59 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord2 : TEXCOORD2) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t2.x + // mov r0, t2.x + temp0 = texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 66 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 67 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 68 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 69 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 70 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 71 +}; +// _CreateShadowMap_Expression19 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression19() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader20 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader20_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader20_Output +{ + float4 position : POSITION; + float3 texcoord4 : TEXCOORD4; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +_CreateShadowMap_VertexShader20_Output _CreateShadowMap_VertexShader20(_CreateShadowMap_VertexShader20_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + _CreateShadowMap_VertexShader20_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + float3 temp5, temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.w, c27[a0.y].x, -r2.y, r1.w + temp1.w = float1(-0.5) * -temp2.y + temp1.w; + // mov r2.xy, c27[a0.y] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c37, c37.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // mul r3.xyz, r1.w, c79 + temp3.xyz = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r1.yzw, r1.y, c78.xxyz, r3.xxyz + temp1.yzw = temp1.yyy * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c66 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c65 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.z, r3.z, c28.w + temp2.z = temp3.z + float1(-1); + // mul r2.z, r2.z, r2.z + temp2.z = temp2.z * temp2.z; + // sge r2.z, -r2.z, r2.z + temp2.z = (-temp2.z >= temp2.z) ? 1 : 0; + // lrp r4.x, r2.z, c29.z, r3.z + temp4.x = lerp(temp3.z, float1(1.0001), temp2.z); + // log r2.z, r4.x + temp2.z = log2(temp4.x); + // mul r2.w, r2.z, c29.w + temp2.w = temp2.z * float1(0.6931472); + // mul r2.z, r0.z, r2.z + temp2.z = temp0.z * temp2.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r2.z, r2.z + temp2.z = exp2(temp2.z); + // add r2.z, r2.z, c28.w + temp2.z = temp2.z + float1(-1); + // mul r2.z, r2.w, r2.z + temp2.z = temp2.w * temp2.z; + // mad r2.z, r3.y, r2.z, r3.x + temp2.z = temp3.y * temp2.z + temp3.x; + // mad r3.xyz, r2.z, r1.yzww, r0.xyww + temp3.xyz = temp2.zzz * temp1.yzw + temp0.xyw; + // mov r3.w, -c28.w + temp3.w = float1(1); + // dp4 oPos.x, r3, c71 + o.position.x = dot(temp3, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r3, c72 + o.position.y = dot(temp3, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r3, c74 + temp0.y = dot(temp3, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r3, c73 + temp0.x = dot(temp3, (WorldViewProjection._m02_m12_m22_m32)); + // mov oT4.xyz, r3 + o.texcoord4 = temp3; + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r3.x, r0.x, c40.x + temp3.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r2.z, r1.y, r0.w, -r0.w + temp2.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r2.z, c54.x + temp0.x = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r2, r0 + temp0.xy = temp2.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r3.w, r1.x, r1.y, r1.z + temp3.w = temp1.x * temp1.y + temp1.z; + // mov r1.w, c27.z + temp1.w = float1(0); + // mul r2.z, r0.z, c63.x + temp2.z = temp0.z * Draw.SpeedMultiplier.x; + // min r3.y, r2.z, c40.x + temp3.y = min(temp2.z, expr40.x); + // frc r1.xyz, r3.yxxw + temp1.xyz = frac(temp3.yxx); + // add r1.zw, r3.xyxw, -r1 + temp1.zw = temp3.xw + -temp1.zw; + // add r4.xz, r3.yyxw, -r1.xyyw + temp4.xz = temp3.yx + -temp1.xy; + // add r1.xy, r2, r1.zwzw + temp1.xy = temp2.xy + temp1.zw; + // mul r1.xy, r1, c46.x + temp1.xy = temp1.xy * expr46.xx; + // frc r0.w, r2.z + temp0.w = frac(temp2.z); + // mul r2.z, r2.z, c50.x + temp2.z = temp2.z * expr50.x; + // frc r1.z, r3.y + temp1.z = frac(temp3.y); + // lrp r5.xyz, c51.x, r1, r0.xyww + temp5.xyz = lerp(temp0.xyw, temp1.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xy, r0 + temp1.xy = frac(temp0.xy); + // add r0.xy, r0, -r1 + temp0.xy = temp0.xy + -temp1.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r1.xy, c64 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.x, r0.x, -r0.w + temp1.x = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r3.z, r0.x, r0.w, r1.x + temp3.z = temp0.x * temp0.w + temp1.x; + // add r0.xw, r2.xyzy, r3.zyzw + temp0.xw = temp2.xy + temp3.zw; + // mul r6.xy, r0.xwzw, c46.x + temp6.xy = temp0.xw * expr46.xx; + // mov r6.z, c27.z + temp6.z = float1(0); + // lrp r7.xyz, c52.x, r6, r5 + temp7.xyz = lerp(temp5.xyz, temp6.xyz, expr52.xxx); + // mov r4.w, c48.x + temp4.w = expr48.x; + // add r1.xy, r2, r4.zwzw + temp1.xy = temp2.xy + temp4.zw; + // mul r5.xy, r1, c46.x + temp5.xy = temp1.xy * expr46.xx; + // mov r5.z, r1.z + temp5.z = temp1.z; + // add r5.xyz, -r7, r5 + temp5.xyz = -temp7.xyz + temp5.xyz; + // mad oT3.xyz, c53.x, r5, r7 + o.texcoord3 = expr53.x * temp5 + temp7; + // mov r1.w, c27.z + temp1.w = float1(0); + // add r1.xy, r3.ywzw, -r1.zwzw + temp1.xy = temp3.yw + -temp1.zw; + // add r1.xy, r2, r1 + temp1.xy = temp2.xy + temp1.xy; + // abs r1.z, r2.z + temp1.z = abs(temp2.z); + // sge r1.w, r2.z, -r2.z + temp1.w = (temp2.z >= -temp2.z) ? 1 : 0; + // frc r1.z, r1.z + temp1.z = frac(temp1.z); + // lrp r2.z, r1.w, r1.z, -r1.z + temp2.z = lerp(-temp1.z, temp1.z, temp1.w); + // mul r1.z, r2.z, c54.y + temp1.z = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.z, r1.w + temp2.z = abs(temp1.w); + // frc r2.z, r2.z + temp2.z = frac(temp2.z); + // sge r2.w, r1.w, -r1.w + temp2.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r1.z, r3.x, c54.x + temp1.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1 + temp2.zw = frac(temp1.zw); + // add r1.zw, r1, -r2 + temp1.zw = temp1.zw + -temp2.zw; + // add r1.zw, r2.xyxy, r1 + temp1.zw = temp2.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r4.y, c45.x + temp4.y = expr45.x; + // add r1.xy, r2, r4 + temp1.xy = temp2.xy + temp4.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, c27.z + o.texcoord1 = float4(0, 0, 0, 0); + // + + return o; +} + +// Default_L_PixelShader21 Pixel_2_0 Has PRES False +struct Default_L_PixelShader21_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 Default_L_PixelShader21(Default_L_PixelShader21_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_L_VertexShader22 Vertex_2_0 Has PRES True +struct Default_L_VertexShader22_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_L_VertexShader22_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +Default_L_VertexShader22_Output Default_L_VertexShader22(Default_L_VertexShader22_Input i) +{ + /* + PRSI + OutputRegisterOffset: 38 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 38 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 44 ConstInput 2 + 1 - ConstOutput: 47 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr38; + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c38.x, c1.x, (30) + expr38.x = Time.x * (30); + // add c39.x, c0.x, (-1) + expr39.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c49.x, r1.x, r0.y + expr49.x = temp1.x < temp0.y; + // mul c50.x, r0.x, r2.x + expr50.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c44.x, r2.z, r0.x + expr44.x = temp2.z + temp0.x; + // rcp c45.x, c0.x + expr45.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c48.x, r0.x, r1.x + expr48.x = temp0.x >= temp1.x; + // rcp c47.x, c0.y + expr47.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + Default_L_VertexShader22_Output o; + float4 temp0, temp1, temp2, temp3, addr0, temp4; + float2 temp5; + // def c36, 2.0625, 6.1875, 1.375, 4.8125 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c37, 1, -1, 0.5, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.xyz, c62 + temp0.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mov r0.w, c73.y + temp0.w = Physics.VelocityDampingRange.y; + // mov r1.xyz, c61 + temp1.xyz = Update.Size_Rate_Damping__Min.xyz; + // mov r1.w, c73.x + temp1.w = Physics.VelocityDampingRange.x; + // mov r2.w, c27.w + temp2.w = float1(0.1875); + // mad r2, v2.x, r2.w, c36 + temp2 = i.texcoord1.x * temp2.w + float4(2.0625, 6.1875, 1.375, 4.8125); + // frc r2, r2 + temp2 = frac(temp2); + // mul r2, r2, c28.z + temp2 = temp2 * float4(16, 16, 16, 16); + // frc r3, r2 + temp3 = frac(temp2); + // add r2, r2, -r3 + temp2 = temp2 + -temp3; + // mova a0, r2 + addr0 = temp2; + // mad r0, c11[a0.x], r0, r1 + temp0 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp0 + temp1; + // add r1.xy, r0.zwzw, c28.w + temp1.xy = temp0.zw + float2(-1, -1); + // mul r1.xy, r1, r1 + temp1.xy = temp1.xy * temp1.xy; + // sge r1.xy, -r1, r1 + temp1.xy = (-temp1.xy >= temp1.xy) ? 1 : 0; + // lrp r2.xy, r1, c29.z, r0.zwzw + temp2.xy = lerp(temp0.zw, float2(1.0001, 1.0001), temp1.xy); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.x, r0.z, c29.w + temp1.x = temp0.z * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add r1.y, -v1.w, c38.x + temp1.y = -i.texcoord.w + expr38.x; + // mul r0.z, r0.z, r1.y + temp0.z = temp0.z * temp1.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c28.w + temp0.z = temp0.z + float1(-1); + // mul r0.z, r1.x, r0.z + temp0.z = temp1.x * temp0.z; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xzw, v1.xyyz, r0.z, r2.xyyz + temp1.xzw = i.texcoord.xyz * temp0.zzz + temp2.xyz; + // mul r0.z, r1.y, -c27.x + temp0.z = temp1.y * float1(0.5); + // mov r2.xyz, c71 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.z, r2, c72 + temp2.xyz = temp0.zzz * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xzw, r2.xyyz, r1.y, r1 + temp1.xzw = temp2.xyz * temp1.yyy + temp1.xzw; + // add r2.xyz, r1.xzzw, -v0.xyyw + temp2.xyz = temp1.xzz + -i.position.xyy; + // mov r3.xy, c64 + temp3.xy = Update.XYRotation_Rate_Damping__Spread.xy; + // mov r3.zw, c66.xyxy + temp3.zw = Update.ZRotation_Rate_Damping__Spread.xy; + // mov r4.xy, c63 + temp4.xy = Update.XYRotation_Rate_Damping__Min.xy; + // mov r4.zw, c65.xyxy + temp4.zw = Update.ZRotation_Rate_Damping__Min.xy; + // mad r3, c11[a0.y], r3, r4 + temp3 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp3 + temp4; + // mad r3.xy, r3.ywzw, r1.y, r3.xzzw + temp3.xy = temp3.yw * temp1.yy + temp3.xz; + // mad r3.xy, r3, c30.z, c30.y + temp3.xy = temp3.xy * float2(0.15915494, 0.15915494) + float2(0.5, 0.5); + // frc r3.xy, r3 + temp3.xy = frac(temp3.xy); + // mad r3.xy, r3, c31.z, c31.w + temp3.xy = temp3.xy * float2(6.2831855, 6.2831855) + float2(-3.1415927, -3.1415927); + // sincos r4.xy, r3.x, c0, c1 + temp4.xy = float2(cos(temp3.x), sin(temp3.x)); + // sincos r5.xy, r3.y, c0, c1 + temp5.xy = float2(cos(temp3.y), sin(temp3.y)); + // mul r2.yzw, r2.xxyz, r4.xxyx + temp2.yzw = temp2.xyz * temp4.xyx; + // mad r2.w, r2.x, -r4.y, r2.w + temp2.w = temp2.x * -temp4.y + temp2.w; + // add r2.x, r2.z, r2.y + temp2.x = temp2.z + temp2.y; + // add r1.xz, r2.xyww, v0.xyyw + temp1.xz = temp2.xw + i.position.xy; + // slt r0.z, v0.w, r1.y + temp0.z = (i.position.w < temp1.y) ? 1 : 0; + // mad r0.z, r0.z, -v2.y, v2.y + temp0.z = temp0.z * -i.texcoord1.y + i.texcoord1.y; + // frc r2.x, r0.z + temp2.x = frac(temp0.z); + // add r0.z, r0.z, -r2.x + temp0.z = temp0.z + -temp2.x; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.xyz, r5.xyxw, c27[a0.x].xyyw + temp2.xyz = temp5.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c27[a0.x].x, -r5.y, r2.z + temp0.z = float1(-0.5) * -temp5.y + temp2.z; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c37.xyxy, c37.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r2.x, r2.y, r2.x + temp2.x = temp2.y + temp2.x; + // mul r3.xyz, r0.z, c75 + temp3.xyz = temp0.zzz * (View._m01_m11_m21_m31).xyz; + // mad r3.xyz, r2.x, c74, r3 + temp3.xyz = temp2.xxx * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mul r0.z, r0.w, c29.w + temp0.z = temp0.w * float1(0.6931472); + // mul r0.w, r0.w, r1.y + temp0.w = temp0.w * temp1.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c28.w + temp0.w = temp0.w + float1(-1); + // mul r0.z, r0.z, r0.w + temp0.z = temp0.z * temp0.w; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mad r0.xyz, r0.x, r3, r1.xzww + temp0.xyz = temp0.xxx * temp3.xyz + temp1.xzw; + // mov r0.w, -c28.w + temp0.w = float1(1); + // dp4 oPos.x, r0, c67 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c68 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c69 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c70 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mul r0.x, r1.y, c60.x + temp0.x = temp1.y * Draw.SpeedMultiplier.x; + // mul r0.y, r0.x, c47.x + temp0.y = temp0.x * expr47.x; + // min r0.x, r0.x, c39.x + temp0.x = min(temp0.x, expr39.x); + // abs r1.x, r0.y + temp1.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // lrp r2.x, r0.y, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp0.y); + // mul r0.y, r2.x, c51.y + temp0.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.y, c45.x + temp1.z = temp0.y * expr45.x; + // abs r0.y, r1.z + temp0.y = abs(temp1.z); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // sge r1.w, r1.z, -r1.z + temp1.w = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r2.x, r1.w, r0.y, -r0.y + temp2.x = lerp(-temp0.y, temp0.y, temp1.w); + // mul r1.x, r2.x, c51.x + temp1.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.xzzw + temp2.xy = frac(temp1.xz); + // add r1.xz, r1, -r2.xyyw + temp1.xz = temp1.xz + -temp2.xy; + // add r1.xz, r2.zyww, r1 + temp1.xz = temp2.zw + temp1.xz; + // mul r1.xz, r1, c45.x + temp1.xz = temp1.xz * expr45.xx; + // mov r2.x, c51.x + temp2.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r2.x, c11[a0.z].x + temp0.y = temp2.x * float1(0.957897); + // mul r1.w, r2.x, c11[a0.w].x + temp1.w = temp2.x * float1(0.957897); + // frc r2.x, r0.y + temp2.x = frac(temp0.y); + // add r2.y, r0.y, -r2.x + temp2.y = temp0.y + -temp2.x; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // mad r0.w, r0.y, r2.x, r2.y + temp0.w = temp0.y * temp2.x + temp2.y; + // mov r3.z, c27.z + temp3.z = float1(0); + // frc r3.xy, r0.x + temp3.xy = frac(temp0.x); + // add r2.xy, r0.xwzw, -r3.yzzw + temp2.xy = temp0.xw + -temp3.yz; + // add r0.x, r0.x, -r3.x + temp0.x = temp0.x + -temp3.x; + // add r2.xy, r2.zwzw, r2 + temp2.xy = temp2.zw + temp2.xy; + // mad r2.xy, r2, c45.x, -r1.xzzw + temp2.xy = temp2.xy * expr45.xx + -temp1.xz; + // mad r1.xz, c48.x, r2.xyyw, r1 + temp1.xz = expr48.xx * temp2.xy + temp1.xz; + // frc r2.x, r1.w + temp2.x = frac(temp1.w); + // add r2.y, r1.w, -r2.x + temp2.y = temp1.w + -temp2.x; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // slt r1.w, r1.w, -r1.w + temp1.w = (temp1.w < -temp1.w) ? 1 : 0; + // mad r0.z, r1.w, r2.x, r2.y + temp0.z = temp1.w * temp2.x + temp2.y; + // add r0.zw, r2, r0 + temp0.zw = temp2.zw + temp0.zw; + // mad r0.zw, r0, c45.x, -r1.xyxz + temp0.zw = temp0.zw * expr45.xx + -temp1.xz; + // mad r0.zw, c49.x, r0, r1.xyxz + temp0.zw = expr49.xx * temp0.zw + temp1.xz; + // mov r0.y, c44.x + temp0.y = expr44.x; + // add r0.xy, r2.zwzw, r0 + temp0.xy = temp2.zw + temp0.xy; + // mad r0.xy, r0, c45.x, -r0.zwzw + temp0.xy = temp0.xy * expr45.xx + -temp0.zw; + // mad oT0.xy, c50.x, r0, r0.zwzw + o.texcoord = expr50.x * temp0 + temp0.zwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.y, r0.x + temp0.x = temp1.y * temp0.x; + // mov r1, c54 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c55 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c56 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c57 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c58 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c52 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c53 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // add r1, r3, -r4 + temp1 = temp3 + -temp4; + // mad oD0, r0.y, r1, r4 + o.color = temp0.y * temp1 + temp4; + // + + return o; +} + +// Default_M_Expression23 Expression_2_0 Has PRES False +float Default_M_Expression23() +{ + float1 expr0; + // mov c0.x, (0) + expr0.x = (0); + return expr0; +} + +// Default_M_VertexShader24 Vertex_2_0 Has PRES True +struct Default_M_VertexShader24_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader24_Output +{ + float4 position : POSITION; + float3 texcoord4 : TEXCOORD4; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +Default_M_VertexShader24_Output Default_M_VertexShader24(Default_M_VertexShader24_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + Default_M_VertexShader24_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + float3 temp5, temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c37, 1, -1, 0.5, 0 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r1.w, c27[a0.y].x, -r2.y, r1.w + temp1.w = float1(-0.5) * -temp2.y + temp1.w; + // mov r2.xy, c27[a0.y] + temp2.xy = float2(-0.5, -0.5); + // mad r2.xy, r2, c37, c37.z + temp2.xy = temp2.xy * float2(1, -1) + float2(0.5, 0.5); + // add r1.y, r1.z, r1.y + temp1.y = temp1.z + temp1.y; + // mul r3.xyz, r1.w, c79 + temp3.xyz = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r1.yzw, r1.y, c78.xxyz, r3.xxyz + temp1.yzw = temp1.yyy * (View._m00_m10_m20_m30).xyz + temp3.xyz; + // mov r3.xyz, c11[a0.x] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c66 + temp4.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c65 + temp3.xyz = temp3.xyz * temp4.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.z, r3.z, c28.w + temp2.z = temp3.z + float1(-1); + // mul r2.z, r2.z, r2.z + temp2.z = temp2.z * temp2.z; + // sge r2.z, -r2.z, r2.z + temp2.z = (-temp2.z >= temp2.z) ? 1 : 0; + // lrp r4.x, r2.z, c29.z, r3.z + temp4.x = lerp(temp3.z, float1(1.0001), temp2.z); + // log r2.z, r4.x + temp2.z = log2(temp4.x); + // mul r2.w, r2.z, c29.w + temp2.w = temp2.z * float1(0.6931472); + // mul r2.z, r0.z, r2.z + temp2.z = temp0.z * temp2.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r2.z, r2.z + temp2.z = exp2(temp2.z); + // add r2.z, r2.z, c28.w + temp2.z = temp2.z + float1(-1); + // mul r2.z, r2.w, r2.z + temp2.z = temp2.w * temp2.z; + // mad r2.z, r3.y, r2.z, r3.x + temp2.z = temp3.y * temp2.z + temp3.x; + // mad r3.xyz, r2.z, r1.yzww, r0.xyww + temp3.xyz = temp2.zzz * temp1.yzw + temp0.xyw; + // mov r3.w, -c28.w + temp3.w = float1(1); + // dp4 oPos.x, r3, c71 + o.position.x = dot(temp3, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r3, c72 + o.position.y = dot(temp3, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r3, c74 + temp0.y = dot(temp3, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r3, c73 + temp0.x = dot(temp3, (WorldViewProjection._m02_m12_m22_m32)); + // mov oT4.xyz, r3 + o.texcoord4 = temp3; + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r3.x, r0.x, c40.x + temp3.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r2.z, r1.y, r0.w, -r0.w + temp2.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r2.z, c54.x + temp0.x = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r2, r0 + temp0.xy = temp2.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r3.w, r1.x, r1.y, r1.z + temp3.w = temp1.x * temp1.y + temp1.z; + // mov r1.w, c27.z + temp1.w = float1(0); + // mul r2.z, r0.z, c63.x + temp2.z = temp0.z * Draw.SpeedMultiplier.x; + // min r3.y, r2.z, c40.x + temp3.y = min(temp2.z, expr40.x); + // frc r1.xyz, r3.yxxw + temp1.xyz = frac(temp3.yxx); + // add r1.zw, r3.xyxw, -r1 + temp1.zw = temp3.xw + -temp1.zw; + // add r4.xz, r3.yyxw, -r1.xyyw + temp4.xz = temp3.yx + -temp1.xy; + // add r1.xy, r2, r1.zwzw + temp1.xy = temp2.xy + temp1.zw; + // mul r1.xy, r1, c46.x + temp1.xy = temp1.xy * expr46.xx; + // frc r0.w, r2.z + temp0.w = frac(temp2.z); + // mul r2.z, r2.z, c50.x + temp2.z = temp2.z * expr50.x; + // frc r1.z, r3.y + temp1.z = frac(temp3.y); + // lrp r5.xyz, c51.x, r1, r0.xyww + temp5.xyz = lerp(temp0.xyw, temp1.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xy, r0 + temp1.xy = frac(temp0.xy); + // add r0.xy, r0, -r1 + temp0.xy = temp0.xy + -temp1.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r1.xy, c64 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.x, r0.x, -r0.w + temp1.x = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r3.z, r0.x, r0.w, r1.x + temp3.z = temp0.x * temp0.w + temp1.x; + // add r0.xw, r2.xyzy, r3.zyzw + temp0.xw = temp2.xy + temp3.zw; + // mul r6.xy, r0.xwzw, c46.x + temp6.xy = temp0.xw * expr46.xx; + // mov r6.z, c27.z + temp6.z = float1(0); + // lrp r7.xyz, c52.x, r6, r5 + temp7.xyz = lerp(temp5.xyz, temp6.xyz, expr52.xxx); + // mov r4.w, c48.x + temp4.w = expr48.x; + // add r1.xy, r2, r4.zwzw + temp1.xy = temp2.xy + temp4.zw; + // mul r5.xy, r1, c46.x + temp5.xy = temp1.xy * expr46.xx; + // mov r5.z, r1.z + temp5.z = temp1.z; + // add r5.xyz, -r7, r5 + temp5.xyz = -temp7.xyz + temp5.xyz; + // mad oT3.xyz, c53.x, r5, r7 + o.texcoord3 = expr53.x * temp5 + temp7; + // mov r1.w, c27.z + temp1.w = float1(0); + // add r1.xy, r3.ywzw, -r1.zwzw + temp1.xy = temp3.yw + -temp1.zw; + // add r1.xy, r2, r1 + temp1.xy = temp2.xy + temp1.xy; + // abs r1.z, r2.z + temp1.z = abs(temp2.z); + // sge r1.w, r2.z, -r2.z + temp1.w = (temp2.z >= -temp2.z) ? 1 : 0; + // frc r1.z, r1.z + temp1.z = frac(temp1.z); + // lrp r2.z, r1.w, r1.z, -r1.z + temp2.z = lerp(-temp1.z, temp1.z, temp1.w); + // mul r1.z, r2.z, c54.y + temp1.z = temp2.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.z, r1.w + temp2.z = abs(temp1.w); + // frc r2.z, r2.z + temp2.z = frac(temp2.z); + // sge r2.w, r1.w, -r1.w + temp2.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r2.w, r2.z, -r2.z + temp3.x = lerp(-temp2.z, temp2.z, temp2.w); + // mul r1.z, r3.x, c54.x + temp1.z = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.zw, r1 + temp2.zw = frac(temp1.zw); + // add r1.zw, r1, -r2 + temp1.zw = temp1.zw + -temp2.zw; + // add r1.zw, r2.xyxy, r1 + temp1.zw = temp2.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r4.y, c45.x + temp4.y = expr45.x; + // add r1.xy, r2, r4 + temp1.xy = temp2.xy + temp4.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // + + return o; +} + +// Default_Expression25 Expression_2_0 Has PRES False +float Default_Expression25() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c8.x, (-3) + temp0.x = Draw.ShaderType.x + (-3); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, (-2) + temp0.x = temp2.x + (-2); + // mul r1.x, r0.x, c9.x + temp1.x = temp0.x * ShouldDrawParticleSoft.x; + // add r0.x, r1.x, (2) + temp0.x = temp1.x + (2); + // mul c0.x, r0.x, (3) + expr0.x = temp0.x * (3); + return expr0; +} + +// Default_VertexShader26 Vertex_3_0 Has PRES True +struct Default_VertexShader26_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_VertexShader26_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +Default_VertexShader26_Output Default_VertexShader26(Default_VertexShader26_Input i) +{ + /* + PRSI + OutputRegisterOffset: 38 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 38 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 1 + 3 - ConstOutput: 54 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr38; + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c38.x, c1.x, (30) + expr38.x = Time.x * (30); + // add c39.x, c0.x, (-1) + expr39.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c55.x, c0.y + expr55.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c46.x, r0.x + expr46.x = temp0.x; + // mov c50.x, r0.x + expr50.x = temp0.x; + // mov c54.x, r0.x + expr54.x = temp0.x; + // mov c56.x, r0.x + expr56.x = temp0.x; + } + + Default_VertexShader26_Output o; + float4 temp0, temp1, temp2, addr0, temp3, temp4, temp5, temp6; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c37, 1, -1, 0.5, 0 + // def c30, -0.5, 0.5, 0.1591549, 0.2 + // def c31, 0, 0, 6.283185, -3.141593 + // def c32, -0.25, -0.25, 0.1875, 4.8125 + // def c33, 0.25, -0.25, 0.1875, 2.75 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // dcl_texcoord6 o8.xyz + // add r0.x, c38.x, -v1.w + temp0.x = expr38.x + -i.texcoord.w; + // slt r0.y, v0.w, r0.x + temp0.y = (i.position.w < temp0.x) ? 1 : 0; + // mad r0.y, r0.y, -v2.y, v2.y + temp0.y = temp0.y * -i.texcoord1.y + i.texcoord1.y; + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.z, r0.x, r0.z + temp0.z = temp0.x * temp0.z; + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r1, v2.x, r0.w, c36 + temp1 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r1, r1 + temp1 = frac(temp1); + // mul r1, r1, c28.z + temp1 = temp1 * float4(16, 16, 16, 16); + // frc r2, r1 + temp2 = frac(temp1); + // add r1, r1, -r2 + temp1 = temp1 + -temp2; + // mova a0, r1 + addr0 = temp1; + // mov r1.xyz, c11[a0.x] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c69 + temp2.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c68 + temp1.xyz = temp1.xyz * temp2.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r0.w, r1.z, c28.w + temp0.w = temp1.z + float1(-1); + // sge r0.w, -r0_abs.w, r0_abs.w + temp0.w = (r0.w == 0) ? 1 : 0; + // lrp r2.x, r0.w, c29.z, r1.z + temp2.x = lerp(temp1.z, float1(1.0001), temp0.w); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.z, r0.x, r0.w + temp1.z = temp0.x * temp0.w; + // exp r1.z, r1.z + temp1.z = exp2(temp1.z); + // add r1.z, r1.z, c28.w + temp1.z = temp1.z + float1(-1); + // mul r0.w, r0.w, c29.w + temp0.w = temp0.w * float1(0.6931472); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mul r0.w, r1.z, r0.w + temp0.w = temp1.z * temp0.w; + // mad r0.w, r1.y, r0.w, r1.x + temp0.w = temp1.y * temp0.w + temp1.x; + // mov r1.xy, c84 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r1.x, c11[a0.y].x, r1.y, r1.x + temp1.x = float1(0.957897) * temp1.y + temp1.x; + // add r1.y, r1.x, c28.w + temp1.y = temp1.x + float1(-1); + // sge r1.y, -r1_abs.y, r1_abs.y + temp1.y = (r1.y == 0) ? 1 : 0; + // lrp r2.x, r1.y, c29.z, r1.x + temp2.x = lerp(temp1.x, float1(1.0001), temp1.y); + // log r1.x, r2.x + temp1.x = log2(temp2.x); + // mul r1.y, r0.x, r1.x + temp1.y = temp0.x * temp1.x; + // exp r1.y, r1.y + temp1.y = exp2(temp1.y); + // add r1.y, r1.y, c28.w + temp1.y = temp1.y + float1(-1); + // mul r1.x, r1.x, c29.w + temp1.x = temp1.x * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xyz, v1, r1.x, r2 + temp1.xyz = i.texcoord.xyz * temp1.xxx + temp2.xyz; + // mul r1.w, r0.x, -c27.x + temp1.w = temp0.x * float1(0.5); + // mov r2.xyz, c82 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r1.w, r2, c83 + temp2.xyz = temp1.www * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xyz, r2, r0.x, r1 + temp1.xyz = temp2.xyz * temp0.xxx + temp1.xyz; + // add r2.xyz, r1.xyyw, -v0.xyyw + temp2.xyz = temp1.xyy + -i.position.xyy; + // mov r3.xyz, c11[a0.z] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c71 + temp4.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c70 + temp3.xyz = temp3.xyz * temp4.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r3.z, c28.w + temp1.w = temp3.z + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r2.w, r1.w, c29.z, r3.z + temp2.w = lerp(temp3.z, float1(1.0001), temp1.w); + // log r1.w, r2.w + temp1.w = log2(temp2.w); + // mul r2.w, r0.x, r1.w + temp2.w = temp0.x * temp1.w; + // exp r2.w, r2.w + temp2.w = exp2(temp2.w); + // add r2.w, r2.w, c28.w + temp2.w = temp2.w + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.w, r3.y, r1.w, r3.x + temp1.w = temp3.y * temp1.w + temp3.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.w + temp3.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r2.yzw, r2.xxyz, r3.xxyx + temp2.yzw = temp2.xyz * temp3.xyx; + // add r2.y, r2.z, r2.y + temp2.y = temp2.z + temp2.y; + // mad r2.z, r2.x, -r3.y, r2.w + temp2.z = temp2.x * -temp3.y + temp2.w; + // add r1.xy, r2.yzzw, v0 + temp1.xy = temp2.yz + i.position.xy; + // mov r2.xyz, c11[a0.w] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c73 + temp3.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r2.yzw, r2.xxyz, r3.xxyz, c72.xxyz + temp2.yzw = temp2.xyz * temp3.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.w, c28.w + temp1.w = temp2.w + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.w + temp3.x = lerp(temp2.w, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.w, r0.x, r1.w + temp2.w = temp0.x * temp1.w; + // exp r2.w, r2.w + temp2.w = exp2(temp2.w); + // add r2.w, r2.w, c28.w + temp2.w = temp2.w + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.w, r2.z, r1.w, r2.y + temp1.w = temp2.z * temp1.w + temp2.y; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.w + temp3.xy = float2(cos(temp1.w), sin(temp1.w)); + // frc r1.w, r0.y + temp1.w = frac(temp0.y); + // add r0.y, r0.y, -r1.w + temp0.y = temp0.y + -temp1.w; + // mova a0.x, r0.y + addr0.x = temp0.y; + // mul r2.yzw, r3.xxyx, c27[a0.x].xxyy + temp2.yzw = temp3.xyx * float3(-0.5, -0.5, -0.5); + // add r0.y, r2.z, r2.y + temp0.y = temp2.z + temp2.y; + // mad r1.w, c27[a0.x].x, -r3.y, r2.w + temp1.w = float1(-0.5) * -temp3.y + temp2.w; + // mul r2.yzw, r1.w, c86.xxyz + temp2.yzw = temp1.www * (View._m01_m11_m21_m31).xyz; + // mad r2.yzw, r0.y, c85.xxyz, r2 + temp2.yzw = temp0.yyy * (View._m00_m10_m20_m30).xyz + temp2.yzw; + // mad r1.xyz, r0.w, r2.yzww, r1 + temp1.xyz = temp0.www * temp2.yzw + temp1.xyz; + // mul r0.y, r0.w, c30.w + temp0.y = temp0.w * float1(0.2); + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp4 r3.x, r1, c74 + temp3.x = dot(temp1, (WorldView._m00_m10_m20_m30)); + // dp4 r3.y, r1, c75 + temp3.y = dot(temp1, (WorldView._m01_m11_m21_m31)); + // dp4 r3.z, r1, c76 + temp3.z = dot(temp1, (WorldView._m02_m12_m22_m32)); + // dp4 r3.w, r1, c77 + temp3.w = dot(temp1, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r3.z, r0.y + o.texcoord5.x = temp3.z * temp0.y; + // dp4 r4.x, r3, c78 + temp4.x = dot(temp3, (Projection._m00_m10_m20_m30)); + // dp4 r4.y, r3, c79 + temp4.y = dot(temp3, (Projection._m01_m11_m21_m31)); + // dp4 r4.z, r3, c80 + temp4.z = dot(temp3, (Projection._m02_m12_m22_m32)); + // dp4 r4.w, r3, c81 + temp4.w = dot(temp3, (Projection._m03_m13_m23_m33)); + // rcp r0.w, r4.w + temp0.w = 1.0f / temp4.w; + // mul o4.x, r4.z, r0.w + o.texcoord2 = temp4.z * temp0.w; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.yz, r3.xxyw, c37.xxyw, c37.z + temp2.yz = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r0.w, r0.x, c66.x + temp0.w = temp0.x * Draw.SpeedMultiplier.x; + // min r3.y, r0.w, c39.x + temp3.y = min(temp0.w, expr39.x); + // mov r1.w, c28.w + temp1.w = float1(-1); + // mad r0.x, r0.x, c66.x, -r1.w + temp0.x = temp0.x * Draw.SpeedMultiplier.x + -temp1.w; + // min r3.x, r0.x, c39.x + temp3.x = min(temp0.x, expr39.x); + // if b0 + if (Error ConstBool0Error) { + // frc r5.xy, r3.yxzw + temp5.xy = frac(temp3.yx); + // add r6.xz, r3.yyxw, -r5.xyyw + temp6.xz = temp3.yx + -temp5.xy; + // mov r6.y, c45.x + temp6.y = expr45.x; + // add r5.yz, r2, r6.xxyw + temp5.yz = temp2.yz + temp6.xy; + // mul o1.xy, r5.yzzw, c46.x + o.texcoord = temp5.yzzw * expr46.x; + // mov r6.w, c48.x + temp6.w = expr48.x; + // add r5.yz, r2, r6.xzww + temp5.yz = temp2.yz + temp6.zw; + // mul o5.xy, r5.yzzw, c46.x + o.texcoord3.xy = temp5.yz * expr46.xx; + // mov o5.z, r5.x + o.texcoord3.z = temp5.x; + // else + } else { + // mul r1.w, r2.x, c57.x + temp1.w = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.x, r1.w + temp2.x = frac(temp1.w); + // add r2.w, r1.w, -r2.x + temp2.w = temp1.w + -temp2.x; + // slt r1.w, r1.w, -r1.w + temp1.w = (temp1.w < -temp1.w) ? 1 : 0; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // mad r3.w, r1.w, r2.x, r2.w + temp3.w = temp1.w * temp2.x + temp2.w; + // if b1 + if (Error ConstBool1Error) { + // mad r1.w, v2.x, c32.z, c32.w + temp1.w = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mul r1.w, r1.w, c28.z + temp1.w = temp1.w * float1(16); + // frc r2.x, r1.w + temp2.x = frac(temp1.w); + // add r1.w, r1.w, -r2.x + temp1.w = temp1.w + -temp2.x; + // mova a0.x, r1.w + addr0.x = temp1.w; + // mov r2.x, c57.x + temp2.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r1.w, r2.x, c11[a0.x].x + temp1.w = temp2.x * float1(0.957897); + // frc r2.x, r1.w + temp2.x = frac(temp1.w); + // add r2.w, r1.w, -r2.x + temp2.w = temp1.w + -temp2.x; + // slt r1.w, r1.w, -r1.w + temp1.w = (temp1.w < -temp1.w) ? 1 : 0; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // mad r3.z, r1.w, r2.x, r2.w + temp3.z = temp1.w * temp2.x + temp2.w; + // add r2.xw, r2.yyzz, r3.zyzw + temp2.xw = temp2.yz + temp3.zw; + // mul r2.xw, r2, c50.x + temp2.xw = temp2.xw * expr50.xx; + // mov o5.z, c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r2.xwzw + o.texcoord3.xy = temp2.xw; + // mov o1.xy, r2.xwzw + o.texcoord = temp2.xwzw; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r5.z, r3.y + temp5.z = frac(temp3.y); + // mov r5.w, c27.z + temp5.w = float1(0); + // add r2.xw, r3.yyzw, -r5.zyzw + temp2.xw = temp3.yw + -temp5.zw; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o1.xy, r2.xwzw, c54.x + o.texcoord = temp2.xwzw * expr54.x; + // frc r2.x, r3.x + temp2.x = frac(temp3.x); + // mov r2.w, c27.z + temp2.w = float1(0); + // add r2.xw, r3, -r2 + temp2.xw = temp3.xw + -temp2.xw; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul r5.xy, r2.xwzw, c54.x + temp5.xy = temp2.xw * expr54.xx; + // mov o5.xyz, r5 + o.texcoord3 = temp5; + // else + } else { + // mul r1.w, r0.w, c55.x + temp1.w = temp0.w * expr55.x; + // frc r2.x, r1_abs.w + temp2.x = frac(abs(temp1).w); + // sge r1.w, r1.w, -r1.w + temp1.w = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp1.w); + // mul r1.w, r3.x, c57.y + temp1.w = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.w, r1.w, c56.x + temp2.w = temp1.w * expr56.x; + // frc r1.w, r2_abs.w + temp1.w = frac(abs(temp2).w); + // sge r3.x, r2.w, -r2.w + temp3.x = (temp2.w >= -temp2.w) ? 1 : 0; + // lrp r5.x, r3.x, r1.w, -r1.w + temp5.x = lerp(-temp1.w, temp1.w, temp3.x); + // mul r2.x, r5.x, c57.x + temp2.x = temp5.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r3.xy, r2.xwzw + temp3.xy = frac(temp2.xw); + // add r2.xw, r2, -r3.xyzy + temp2.xw = temp2.xw + -temp3.xy; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o1.xy, r2.xwzw, c56.x + o.texcoord = temp2.xwzw * expr56.x; + // mul r0.x, r0.x, c55.x + temp0.x = temp0.x * expr55.x; + // frc r1.w, r0_abs.x + temp1.w = frac(abs(temp0).x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // lrp r2.x, r0.x, r1.w, -r1.w + temp2.x = lerp(-temp1.w, temp1.w, temp0.x); + // mul r0.x, r2.x, c57.y + temp0.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.w, r0.x, c56.x + temp2.w = temp0.x * expr56.x; + // frc r0.x, r2_abs.w + temp0.x = frac(abs(temp2).w); + // sge r1.w, r2.w, -r2.w + temp1.w = (temp2.w >= -temp2.w) ? 1 : 0; + // lrp r3.x, r1.w, r0.x, -r0.x + temp3.x = lerp(-temp0.x, temp0.x, temp1.w); + // mul r2.x, r3.x, c57.x + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r3.xy, r2.xwzw + temp3.xy = frac(temp2.xw); + // add r2.xw, r2, -r3.xyzy + temp2.xw = temp2.xw + -temp3.xy; + // add r2.xy, r2.yzzw, r2.xwzw + temp2.xy = temp2.yz + temp2.xw; + // mul o5.xy, r2, c56.x + o.texcoord3.xy = temp2.xy * expr56.xx; + // frc o5.z, r0.w + o.texcoord3.z = frac(temp0.w); + // endif + } + // endif + } + // endif + } + // mov r2, c58 + temp2 = Draw.ColorAnimationFunctions[0]; + // mad r2, r2, r0.z, c59 + temp2 = temp2 * temp0.z + Draw.ColorAnimationFunctions[1]; + // slt r0.xw, r0.z, c64.yyzz + temp0.xw = (temp0.zz < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c60 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.z, c61 + temp3 = temp3 * temp0.z + Draw.ColorAnimationFunctions[3]; + // mov r5, c62 + temp5 = Draw.ColorAnimationFunctions[4]; + // mad r5, r5, r0.z, c63 + temp5 = temp5 * temp0.z + Draw.ColorAnimationFunctions[5]; + // lrp r6, r0.w, r3, r5 + temp6 = lerp(temp5, temp3, temp0.w); + // lrp r3, r0.x, r2, r6 + temp3 = lerp(temp6, temp2, temp0.x); + // mad r0.x, v2.x, c33.z, c33.w + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c28.z + temp0.x = temp0.x * float1(16); + // frc r0.z, r0.x + temp0.z = frac(temp0.x); + // add r0.x, r0.x, -r0.z + temp0.x = temp0.x + -temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r2.xy, c67 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r2.y, r2.x + temp0.x = float1(0.957897) * temp2.y + temp2.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r4 + o.position = temp4; + // mov o3.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r4 + o.texcoord4 = temp4; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // mov o8.xyz, r1 + o.texcoord6 = temp1; + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_3_0 Default_VertexShader26(); // 55 + PixelShader = PS_Array_H[Default_Expression25()]; // 56 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader24(); // 61 + PixelShader = PS_Array_M[Default_M_Expression23()]; // 62 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_L_VertexShader22(); // 64 + PixelShader = compile ps_2_0 Default_L_PixelShader21(); // 65 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader20(); // 73 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression19()]; // 74 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/gpuparticlexy.fx b/gpuparticlexy.fx new file mode 100644 index 0000000..334ac69 --- /dev/null +++ b/gpuparticlexy.fx @@ -0,0 +1,3130 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +struct +{ + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw : register(vs_2_0, c54) : register(vs_3_0, c57) = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct +{ + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics : register(vs_2_0, c75) : register(vs_3_0, c82) = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct +{ + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update : register(vs_2_0, c65) : register(vs_3_0, c68) = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture ParticleTextureSampler ; // 8 +sampler2D ParticleTextureSamplerSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture NextFrameTextureSampler ; // 15 +sampler2D NextFrameTextureSamplerSampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture DepthTexture ; // 22 +sampler2D DepthTextureSampler = +sampler_state +{ + Texture = ; // 24 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +bool ShouldDrawParticleSoft ; +column_major float4x4 WorldView : WorldView : register(vs_3_0, c74); +column_major float4x4 Projection : Projection : register(vs_3_0, c78); +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c71); +row_major float4x3 View : View; +row_major float4x4 ProjectionI : ProjectionInverse; +float Time : Time; +// PS_Array_H_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_0(PS_Array_H_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v2, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v2.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // + + return out_color; +} + +// PS_Array_H_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_1(PS_Array_H_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, -1, 1, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xyz, r1, c0.y + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.z + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_2(PS_Array_H_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_3(PS_Array_H_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v2, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v2.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // + + return out_color; +} + +// PS_Array_H_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_4(PS_Array_H_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, -1, 1, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xyz, r1, c0.y + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.z + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_5(PS_Array_H_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +// PS_Array_H_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_6_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_6(PS_Array_H_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord3 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v2, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v2.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // + + return out_color; +} + +// PS_Array_H_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_7_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_7(PS_Array_H_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, -1, 1, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xyz, r1, c0.y + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mov_sat r1.xyz, v2 + temp1.xyz = saturate(i.texcoord1.xyz); + // mad oC0.xyz, r1, r0, c0.z + out_color.xyz = temp1.xyz * temp0.xyz + float3(1, 1, 1); + // + + return out_color; +} + +// PS_Array_H_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_H_Shader_8_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_H_Shader_8(PS_Array_H_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_color v1 + // dcl_texcoord1 v2.xyz + // dcl_texcoord3 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, v3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, v3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v1 + temp0 = temp2 * i.color; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov_sat r0.xyz, v2 + temp0.xyz = saturate(i.texcoord1.xyz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // + + return out_color; +} + +PixelShader PS_Array_H[9] = { + compile ps_3_0 PS_Array_H_Shader_0(), // 29 + compile ps_3_0 PS_Array_H_Shader_1(), // 30 + compile ps_3_0 PS_Array_H_Shader_2(), // 31 + compile ps_3_0 PS_Array_H_Shader_3(), // 32 + compile ps_3_0 PS_Array_H_Shader_4(), // 33 + compile ps_3_0 PS_Array_H_Shader_5(), // 34 + compile ps_3_0 PS_Array_H_Shader_6(), // 35 + compile ps_3_0 PS_Array_H_Shader_7(), // 36 + compile ps_3_0 PS_Array_H_Shader_8(), // 37 +}; +// PS_Array_M_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_0(PS_Array_M_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl t0.xy + // dcl v0 + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v0 + temp0 = temp2 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_M_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_1(PS_Array_M_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, -1, 1, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t1.xyz + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mad r0.xyz, r2, v0, c0.x + temp0.xyz = temp2.xyz * i.color.xyz + float3(-1, -1, -1); + // mul r1.w, r2.w, v0.w + temp1.w = temp2.w * i.color.w; + // mov_sat r2.xyz, t1 + temp2.xyz = saturate(i.texcoord1.xyz); + // mad r1.xyz, r2, r0, c0.y + temp1.xyz = temp2.xyz * temp0.xyz + float3(1, 1, 1); + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_M_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_M_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; +}; + +float4 PS_Array_M_Shader_2(PS_Array_M_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl t0.xy + // dcl v0 + // dcl t1.xyz + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // texld r1, t3, s1 + temp1 = tex2D(NextFrameTextureSamplerSampler, i.texcoord3.xy); + // lrp r2, t3.z, r1, r0 + temp2 = lerp(temp0, temp1, i.texcoord3.z); + // mul r0, r2, v0 + temp0 = temp2 * i.color; + // mov_sat r1.xyz, t1 + temp1.xyz = saturate(i.texcoord1.xyz); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_Array_M[3] = { + compile ps_2_0 PS_Array_M_Shader_0(), // 41 + compile ps_2_0 PS_Array_M_Shader_1(), // 42 + compile ps_2_0 PS_Array_M_Shader_2(), // 43 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord2 : TEXCOORD2) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t2.x + // mov r0, t2.x + temp0 = texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-0.3, -0.3, -0.3, -0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.1, 0, 0, 0 + // dcl t0.xy + // dcl v0 + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mad r0, r0.w, v0.w, c0.x + temp0 = temp0.w * i.color.w + float4(-0.1, -0.1, -0.1, -0.1); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float texcoord2 : TEXCOORD2; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0.3, 0, 0 + // dcl t0.xy + // dcl v0.xyz + // dcl t2.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, -r0.x, c0.y + temp0 = -temp0.x + float4(0.3, 0.3, 0.3, 0.3); + // texkill r0 + clip(temp0); + // mov r0, t2.x + temp0 = i.texcoord2.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[6] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 50 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 51 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 52 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 53 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 54 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 55 +}; +// _CreateShadowMap_Expression19 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression19() +{ + float1 expr0; + // min c0.x, c8.x, (5) + expr0.x = min(Draw.ShaderType.x, (5)); + return expr0; +} + +// _CreateShadowMap_VertexShader20 Vertex_2_0 Has PRES True +struct _CreateShadowMap_VertexShader20_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct _CreateShadowMap_VertexShader20_Output +{ + float4 position : POSITION; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +_CreateShadowMap_VertexShader20_Output _CreateShadowMap_VertexShader20(_CreateShadowMap_VertexShader20_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + _CreateShadowMap_VertexShader20_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + float3 temp5, temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c37, 1, -1, 0.5, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r2.y, c27[a0.y].x, -r2.y, r1.w + temp2.y = float1(-0.5) * -temp2.y + temp1.w; + // mov r3.xy, c27[a0.y] + temp3.xy = float2(-0.5, -0.5); + // mad r3.xy, r3, c37, c37.z + temp3.xy = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r2.x, r1.z, r1.y + temp2.x = temp1.z + temp1.y; + // mov r2.z, c27.z + temp2.z = float1(0); + // mov r4.xyz, c11[a0.x] + temp4.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r5.xyz, c66 + temp5.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r1.yzw, r4.xxyz, r5.xxyz, c65.xxyz + temp1.yzw = temp4.xyz * temp5.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.w, r1.w, c28.w + temp2.w = temp1.w + float1(-1); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // sge r2.w, -r2.w, r2.w + temp2.w = (-temp2.w >= temp2.w) ? 1 : 0; + // lrp r3.z, r2.w, c29.z, r1.w + temp3.z = lerp(temp1.w, float1(1.0001), temp2.w); + // log r1.w, r3.z + temp1.w = log2(temp3.z); + // mul r2.w, r1.w, c29.w + temp2.w = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r2.xyz, r1.y, r2, r0.xyww + temp2.xyz = temp1.yyy * temp2.xyz + temp0.xyw; + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 oPos.x, r2, c71 + o.position.x = dot(temp2, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c72 + o.position.y = dot(temp2, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r2, c74 + temp0.y = dot(temp2, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r2, c73 + temp0.x = dot(temp2, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r2.x, r0.x, c40.x + temp2.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r3.z, r1.y, r0.w, -r0.w + temp3.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r3.z, c54.x + temp0.x = temp3.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r3, r0 + temp0.xy = temp3.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r2.w, r1.x, r1.y, r1.z + temp2.w = temp1.x * temp1.y + temp1.z; + // mov r1.w, c27.z + temp1.w = float1(0); + // mul r3.z, r0.z, c63.x + temp3.z = temp0.z * Draw.SpeedMultiplier.x; + // min r2.y, r3.z, c40.x + temp2.y = min(temp3.z, expr40.x); + // frc r1.xyz, r2.yxxw + temp1.xyz = frac(temp2.yxx); + // add r1.zw, r2.xyxw, -r1 + temp1.zw = temp2.xw + -temp1.zw; + // add r4.xz, r2.yyxw, -r1.xyyw + temp4.xz = temp2.yx + -temp1.xy; + // add r1.xy, r3, r1.zwzw + temp1.xy = temp3.xy + temp1.zw; + // mul r1.xy, r1, c46.x + temp1.xy = temp1.xy * expr46.xx; + // frc r0.w, r3.z + temp0.w = frac(temp3.z); + // mul r2.x, r3.z, c50.x + temp2.x = temp3.z * expr50.x; + // frc r1.z, r2.y + temp1.z = frac(temp2.y); + // lrp r5.xyz, c51.x, r1, r0.xyww + temp5.xyz = lerp(temp0.xyw, temp1.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xy, r0 + temp1.xy = frac(temp0.xy); + // add r0.xy, r0, -r1 + temp0.xy = temp0.xy + -temp1.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r1.xy, c64 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.x, r0.x, -r0.w + temp1.x = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r2.z, r0.x, r0.w, r1.x + temp2.z = temp0.x * temp0.w + temp1.x; + // add r0.xw, r3.xyzy, r2.zyzw + temp0.xw = temp3.xy + temp2.zw; + // mul r6.xy, r0.xwzw, c46.x + temp6.xy = temp0.xw * expr46.xx; + // mov r6.z, c27.z + temp6.z = float1(0); + // lrp r7.xyz, c52.x, r6, r5 + temp7.xyz = lerp(temp5.xyz, temp6.xyz, expr52.xxx); + // mov r4.w, c48.x + temp4.w = expr48.x; + // add r1.xy, r3, r4.zwzw + temp1.xy = temp3.xy + temp4.zw; + // mul r5.xy, r1, c46.x + temp5.xy = temp1.xy * expr46.xx; + // mov r5.z, r1.z + temp5.z = temp1.z; + // add r5.xyz, -r7, r5 + temp5.xyz = -temp7.xyz + temp5.xyz; + // mad oT3.xyz, c53.x, r5, r7 + o.texcoord3 = expr53.x * temp5 + temp7; + // mov r1.w, c27.z + temp1.w = float1(0); + // add r1.xy, r2.ywzw, -r1.zwzw + temp1.xy = temp2.yw + -temp1.zw; + // add r1.xy, r3, r1 + temp1.xy = temp3.xy + temp1.xy; + // abs r1.z, r2.x + temp1.z = abs(temp2.x); + // sge r1.w, r2.x, -r2.x + temp1.w = (temp2.x >= -temp2.x) ? 1 : 0; + // frc r1.z, r1.z + temp1.z = frac(temp1.z); + // lrp r2.x, r1.w, r1.z, -r1.z + temp2.x = lerp(-temp1.z, temp1.z, temp1.w); + // mul r1.z, r2.x, c54.y + temp1.z = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.x, r1.w + temp2.x = abs(temp1.w); + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // sge r2.y, r1.w, -r1.w + temp2.y = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.z, r2.y, r2.x, -r2.x + temp3.z = lerp(-temp2.x, temp2.x, temp2.y); + // mul r1.z, r3.z, c54.x + temp1.z = temp3.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.zwzw + temp2.xy = frac(temp1.zw); + // add r1.zw, r1, -r2.xyxy + temp1.zw = temp1.zw + -temp2.xy; + // add r1.zw, r3.xyxy, r1 + temp1.zw = temp3.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r4.y, c45.x + temp4.y = expr45.x; + // add r1.xy, r3, r4 + temp1.xy = temp3.xy + temp4.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, c27.z + o.texcoord1 = float4(0, 0, 0, 0); + // + + return o; +} + +// Default_L_PixelShader21 Pixel_2_0 Has PRES False +struct Default_L_PixelShader21_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 Default_L_PixelShader21(Default_L_PixelShader21_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(ParticleTextureSamplerSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_L_VertexShader22 Vertex_2_0 Has PRES True +struct Default_L_VertexShader22_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_L_VertexShader22_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +Default_L_VertexShader22_Output Default_L_VertexShader22(Default_L_VertexShader22_Input i) +{ + /* + PRSI + OutputRegisterOffset: 38 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 13 + Unknown3: 0 + Unknown4: 0 + Unknown5: 38 + Unknown6: 2 + Mappings: 3 + 0 - ConstOutput: 44 ConstInput 2 + 1 - ConstOutput: 47 ConstInput 4 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr38; + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c38.x, c1.x, (30) + expr38.x = Time.x * (30); + // add c39.x, c0.x, (-1) + expr39.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c49.x, r1.x, r0.y + expr49.x = temp1.x < temp0.y; + // mul c50.x, r0.x, r2.x + expr50.x = temp0.x * temp2.x; + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add c44.x, r2.z, r0.x + expr44.x = temp2.z + temp0.x; + // rcp c45.x, c0.x + expr45.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c48.x, r0.x, r1.x + expr48.x = temp0.x >= temp1.x; + // rcp c47.x, c0.y + expr47.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + } + + Default_L_VertexShader22_Output o; + float4 temp0, temp1, temp2, temp3, addr0, temp4; + float2 temp5; + // def c36, 2.0625, 6.1875, 1.375, 4.8125 + // def c28, 0.5, -0.5, 16, -1 + // def c31, 0, 0, 6.283185, -3.141593 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c37, 1, -1, 0.5, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.xyz, c62 + temp0.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mov r0.w, c73.y + temp0.w = Physics.VelocityDampingRange.y; + // mov r1.xyz, c61 + temp1.xyz = Update.Size_Rate_Damping__Min.xyz; + // mov r1.w, c73.x + temp1.w = Physics.VelocityDampingRange.x; + // mov r2.w, c27.w + temp2.w = float1(0.1875); + // mad r2, v2.x, r2.w, c36 + temp2 = i.texcoord1.x * temp2.w + float4(2.0625, 6.1875, 1.375, 4.8125); + // frc r2, r2 + temp2 = frac(temp2); + // mul r2, r2, c28.z + temp2 = temp2 * float4(16, 16, 16, 16); + // frc r3, r2 + temp3 = frac(temp2); + // add r2, r2, -r3 + temp2 = temp2 + -temp3; + // mova a0, r2 + addr0 = temp2; + // mad r0, c11[a0.x], r0, r1 + temp0 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp0 + temp1; + // add r1.xy, r0.zwzw, c28.w + temp1.xy = temp0.zw + float2(-1, -1); + // mul r1.xy, r1, r1 + temp1.xy = temp1.xy * temp1.xy; + // sge r1.xy, -r1, r1 + temp1.xy = (-temp1.xy >= temp1.xy) ? 1 : 0; + // lrp r2.xy, r1, c29.z, r0.zwzw + temp2.xy = lerp(temp0.zw, float2(1.0001, 1.0001), temp1.xy); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.x, r0.z, c29.w + temp1.x = temp0.z * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // add r1.y, -v1.w, c38.x + temp1.y = -i.texcoord.w + expr38.x; + // mul r0.z, r0.z, r1.y + temp0.z = temp0.z * temp1.y; + // exp r0.z, r0.z + temp0.z = exp2(temp0.z); + // add r0.z, r0.z, c28.w + temp0.z = temp0.z + float1(-1); + // mul r0.z, r1.x, r0.z + temp0.z = temp1.x * temp0.z; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xzw, v1.xyyz, r0.z, r2.xyyz + temp1.xzw = i.texcoord.xyz * temp0.zzz + temp2.xyz; + // mul r0.z, r1.y, -c27.x + temp0.z = temp1.y * float1(0.5); + // mov r2.xyz, c71 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r0.z, r2, c72 + temp2.xyz = temp0.zzz * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xzw, r2.xyyz, r1.y, r1 + temp1.xzw = temp2.xyz * temp1.yyy + temp1.xzw; + // add r2.xyz, r1.xzzw, -v0.xyyw + temp2.xyz = temp1.xzz + -i.position.xyy; + // mov r3.xy, c64 + temp3.xy = Update.XYRotation_Rate_Damping__Spread.xy; + // mov r3.zw, c66.xyxy + temp3.zw = Update.ZRotation_Rate_Damping__Spread.xy; + // mov r4.xy, c63 + temp4.xy = Update.XYRotation_Rate_Damping__Min.xy; + // mov r4.zw, c65.xyxy + temp4.zw = Update.ZRotation_Rate_Damping__Min.xy; + // mad r3, c11[a0.y], r3, r4 + temp3 = float4(0.957897, 0.37887052, 0.36357188, 0.32876092) * temp3 + temp4; + // mad r3.xy, r3.ywzw, r1.y, r3.xzzw + temp3.xy = temp3.yw * temp1.yy + temp3.xz; + // mad r3.xy, r3, c30.z, c30.y + temp3.xy = temp3.xy * float2(0.15915494, 0.15915494) + float2(0.5, 0.5); + // frc r3.xy, r3 + temp3.xy = frac(temp3.xy); + // mad r3.xy, r3, c31.z, c31.w + temp3.xy = temp3.xy * float2(6.2831855, 6.2831855) + float2(-3.1415927, -3.1415927); + // sincos r4.xy, r3.x, c0, c1 + temp4.xy = float2(cos(temp3.x), sin(temp3.x)); + // sincos r5.xy, r3.y, c0, c1 + temp5.xy = float2(cos(temp3.y), sin(temp3.y)); + // mul r2.yzw, r2.xxyz, r4.xxyx + temp2.yzw = temp2.xyz * temp4.xyx; + // mad r2.w, r2.x, -r4.y, r2.w + temp2.w = temp2.x * -temp4.y + temp2.w; + // add r2.x, r2.z, r2.y + temp2.x = temp2.z + temp2.y; + // add r1.xz, r2.xyww, v0.xyyw + temp1.xz = temp2.xw + i.position.xy; + // mul r0.z, r0.w, c29.w + temp0.z = temp0.w * float1(0.6931472); + // mul r0.w, r0.w, r1.y + temp0.w = temp0.w * temp1.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // exp r0.w, r0.w + temp0.w = exp2(temp0.w); + // add r0.w, r0.w, c28.w + temp0.w = temp0.w + float1(-1); + // mul r0.z, r0.z, r0.w + temp0.z = temp0.z * temp0.w; + // mad r0.x, r0.y, r0.z, r0.x + temp0.x = temp0.y * temp0.z + temp0.x; + // mov r0.w, c27.z + temp0.w = float1(0); + // slt r2.x, v0.w, r1.y + temp2.x = (i.position.w < temp1.y) ? 1 : 0; + // mad r2.x, r2.x, -v2.y, v2.y + temp2.x = temp2.x * -i.texcoord1.y + i.texcoord1.y; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.x, r2.x, -r2.y + temp2.x = temp2.x + -temp2.y; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.xyz, r5.xyxw, c27[a0.x].xyyw + temp2.xyz = temp5.xyx * float3(-0.5, -0.5, -0.5); + // mad r0.z, c27[a0.x].x, -r5.y, r2.z + temp0.z = float1(-0.5) * -temp5.y + temp2.z; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.zw, r3.xyxy, c37.xyxy, c37.z + temp2.zw = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r0.y, r2.y, r2.x + temp0.y = temp2.y + temp2.x; + // mad r0.xyz, r0.x, r0.yzww, r1.xzww + temp0.xyz = temp0.xxx * temp0.yzw + temp1.xzw; + // mov r0.w, -c28.w + temp0.w = float1(1); + // dp4 oPos.x, r0, c67 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c68 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c69 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c70 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mul r0.x, r1.y, c60.x + temp0.x = temp1.y * Draw.SpeedMultiplier.x; + // mul r0.y, r0.x, c47.x + temp0.y = temp0.x * expr47.x; + // min r0.x, r0.x, c39.x + temp0.x = min(temp0.x, expr39.x); + // abs r1.x, r0.y + temp1.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r1.x, r1.x + temp1.x = frac(temp1.x); + // lrp r2.x, r0.y, r1.x, -r1.x + temp2.x = lerp(-temp1.x, temp1.x, temp0.y); + // mul r0.y, r2.x, c51.y + temp0.y = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.z, r0.y, c45.x + temp1.z = temp0.y * expr45.x; + // abs r0.y, r1.z + temp0.y = abs(temp1.z); + // frc r0.y, r0.y + temp0.y = frac(temp0.y); + // sge r1.w, r1.z, -r1.z + temp1.w = (temp1.z >= -temp1.z) ? 1 : 0; + // lrp r2.x, r1.w, r0.y, -r0.y + temp2.x = lerp(-temp0.y, temp0.y, temp1.w); + // mul r1.x, r2.x, c51.x + temp1.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.xzzw + temp2.xy = frac(temp1.xz); + // add r1.xz, r1, -r2.xyyw + temp1.xz = temp1.xz + -temp2.xy; + // add r1.xz, r2.zyww, r1 + temp1.xz = temp2.zw + temp1.xz; + // mul r1.xz, r1, c45.x + temp1.xz = temp1.xz * expr45.xx; + // mov r2.x, c51.x + temp2.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.y, r2.x, c11[a0.z].x + temp0.y = temp2.x * float1(0.957897); + // mul r1.w, r2.x, c11[a0.w].x + temp1.w = temp2.x * float1(0.957897); + // frc r2.x, r0.y + temp2.x = frac(temp0.y); + // add r2.y, r0.y, -r2.x + temp2.y = temp0.y + -temp2.x; + // slt r0.y, r0.y, -r0.y + temp0.y = (temp0.y < -temp0.y) ? 1 : 0; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // mad r0.w, r0.y, r2.x, r2.y + temp0.w = temp0.y * temp2.x + temp2.y; + // mov r3.z, c27.z + temp3.z = float1(0); + // frc r3.xy, r0.x + temp3.xy = frac(temp0.x); + // add r2.xy, r0.xwzw, -r3.yzzw + temp2.xy = temp0.xw + -temp3.yz; + // add r0.x, r0.x, -r3.x + temp0.x = temp0.x + -temp3.x; + // add r2.xy, r2.zwzw, r2 + temp2.xy = temp2.zw + temp2.xy; + // mad r2.xy, r2, c45.x, -r1.xzzw + temp2.xy = temp2.xy * expr45.xx + -temp1.xz; + // mad r1.xz, c48.x, r2.xyyw, r1 + temp1.xz = expr48.xx * temp2.xy + temp1.xz; + // frc r2.x, r1.w + temp2.x = frac(temp1.w); + // add r2.y, r1.w, -r2.x + temp2.y = temp1.w + -temp2.x; + // slt r2.x, -r2.x, r2.x + temp2.x = (-temp2.x < temp2.x) ? 1 : 0; + // slt r1.w, r1.w, -r1.w + temp1.w = (temp1.w < -temp1.w) ? 1 : 0; + // mad r0.z, r1.w, r2.x, r2.y + temp0.z = temp1.w * temp2.x + temp2.y; + // add r0.zw, r2, r0 + temp0.zw = temp2.zw + temp0.zw; + // mad r0.zw, r0, c45.x, -r1.xyxz + temp0.zw = temp0.zw * expr45.xx + -temp1.xz; + // mad r0.zw, c49.x, r0, r1.xyxz + temp0.zw = expr49.xx * temp0.zw + temp1.xz; + // mov r0.y, c44.x + temp0.y = expr44.x; + // add r0.xy, r2.zwzw, r0 + temp0.xy = temp2.zw + temp0.xy; + // mad r0.xy, r0, c45.x, -r0.zwzw + temp0.xy = temp0.xy * expr45.xx + -temp0.zw; + // mad oT0.xy, c50.x, r0, r0.zwzw + o.texcoord = expr50.x * temp0 + temp0.zwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r1.y, r0.x + temp0.x = temp1.y * temp0.x; + // mov r1, c54 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c55 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c56 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c57 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.yz, r0.x, c58 + temp0.yz = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c52 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c53 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.z, r1, r2 + temp4 = lerp(temp2, temp1, temp0.z); + // add r1, r3, -r4 + temp1 = temp3 + -temp4; + // mad oD0, r0.y, r1, r4 + o.color = temp0.y * temp1 + temp4; + // + + return o; +} + +// Default_M_Expression23 Expression_2_0 Has PRES False +float Default_M_Expression23() +{ + float1 expr0; + // mov c0.x, (0) + expr0.x = (0); + return expr0; +} + +// Default_M_VertexShader24 Vertex_2_0 Has PRES True +struct Default_M_VertexShader24_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader24_Output +{ + float4 position : POSITION; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +Default_M_VertexShader24_Output Default_M_VertexShader24(Default_M_VertexShader24_Input i) +{ + /* + PRSI + OutputRegisterOffset: 39 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 39 + Unknown6: 2 + Mappings: 4 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 4 + 3 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c39.x, c1.x, (30) + expr39.x = Time.x * (30); + // add c40.x, c0.x, (-1) + expr40.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // mul r0.y, c0.w, c0.w + temp0.y = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // neg r1.x, r0.y + temp1.x = -temp0.y; + // ge r2.x, r1.x, r0.y + temp2.x = temp1.x >= temp0.y; + // lt c52.x, r1.x, r0.y + expr52.x = temp1.x < temp0.y; + // mul c53.x, r0.x, r2.x + expr53.x = temp0.x * temp2.x; + // rcp c46.x, c0.x + expr46.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c51.x, r0.x, r1.x + expr51.x = temp0.x >= temp1.x; + // rcp c50.x, c0.y + expr50.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + } + + Default_M_VertexShader24_Output o; + float4 temp0, temp1, addr0, temp2, temp3, temp4; + float3 temp5, temp6, temp7; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c38, 0.1875, 4.8125, 2.75, 0 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c37, 1, -1, 0.5, 0 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c32, -0.25, -0.25, 0, 0 + // def c33, 0.25, -0.25, 0, 0 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // def c0, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c1, -0.02083333, -0.125, 1, 0.5 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r0, v2.x, r0.w, c36 + temp0 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r0, r0 + temp0 = frac(temp0); + // mul r0, r0, c28.z + temp0 = temp0 * float4(16, 16, 16, 16); + // frc r1, r0 + temp1 = frac(temp0); + // add r0, r0, -r1 + temp0 = temp0 + -temp1; + // mova a0, r0 + addr0 = temp0; + // mov r0.xy, c77 + temp0.xy = Physics.VelocityDampingRange.xy; + // mad r0.x, c11[a0.y].x, r0.y, r0.x + temp0.x = float1(0.957897) * temp0.y + temp0.x; + // add r0.y, r0.x, c28.w + temp0.y = temp0.x + float1(-1); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // sge r0.y, -r0.y, r0.y + temp0.y = (-temp0.y >= temp0.y) ? 1 : 0; + // lrp r1.x, r0.y, c29.z, r0.x + temp1.x = lerp(temp0.x, float1(1.0001), temp0.y); + // log r0.x, r1.x + temp0.x = log2(temp1.x); + // mul r0.y, r0.x, c29.w + temp0.y = temp0.x * float1(0.6931472); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, -v1.w, c39.x + temp0.z = -i.texcoord.w + expr39.x; + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // add r0.x, r0.x, c28.w + temp0.x = temp0.x + float1(-1); + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mov r1.xyz, v0 + temp1.xyz = i.position.xyz; + // mad r0.xyw, v1.xyzz, r0.x, r1.xyzz + temp0.xyw = i.texcoord.xyz * temp0.xxx + temp1.xyz; + // mul r1.x, r0.z, -c27.x + temp1.x = temp0.z * float1(0.5); + // mov r2.xyz, c75 + temp2.xyz = Physics.Gravity.xyz; + // mad r1.xyz, r1.x, r2, c76 + temp1.xyz = temp1.xxx * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r0.xyw, r1.xyzz, r0.z, r0 + temp0.xyw = temp1.xyz * temp0.zzz + temp0.xyw; + // add r1.xyz, r0.xyyw, -v0.xyyw + temp1.xyz = temp0.xyy + -i.position.xyy; + // mov r2.xyz, c11[a0.z] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c68 + temp3.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r2.xyz, r2, r3, c67 + temp2.xyz = temp2.xyz * temp3.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.z, c28.w + temp1.w = temp2.z + float1(-1); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // sge r1.w, -r1.w, r1.w + temp1.w = (-temp1.w >= temp1.w) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.z + temp3.x = lerp(temp2.z, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.z, r1.w, c29.w + temp2.z = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.z, r2.z + temp2.z = 1.0f / temp2.z; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.z, r1.w + temp1.w = temp2.z * temp1.w; + // mad r1.w, r2.y, r1.w, r2.x + temp1.w = temp2.y * temp1.w + temp2.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.w, c0, c1 + temp2.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r1.yzw, r1.xxyz, r2.xxyx + temp1.yzw = temp1.xyz * temp2.xyx; + // mad r1.w, r1.x, -r2.y, r1.w + temp1.w = temp1.x * -temp2.y + temp1.w; + // add r1.x, r1.z, r1.y + temp1.x = temp1.z + temp1.y; + // add r0.xy, r1.xwzw, v0 + temp0.xy = temp1.xw + i.position.xy; + // mov r1.xyz, c11[a0.w] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c70 + temp2.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r1.yzw, r1.xxyz, r2.xxyz, c69.xxyz + temp1.yzw = temp1.xyz * temp2.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r2.x, r1.w, c28.w + temp2.x = temp1.w + float1(-1); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // sge r2.x, -r2.x, r2.x + temp2.x = (-temp2.x >= temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, c29.z, r1.w + temp3.x = lerp(temp1.w, float1(1.0001), temp2.x); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.x, r1.w, c29.w + temp2.x = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.x, r2.x + temp2.x = 1.0f / temp2.x; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.x, r1.w + temp1.w = temp2.x * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r1.y, r1.y, c30.z, c30.y + temp1.y = temp1.y * float1(0.15915494) + float1(0.5); + // frc r1.y, r1.y + temp1.y = frac(temp1.y); + // mad r1.y, r1.y, c31.z, c31.w + temp1.y = temp1.y * float1(6.2831855) + float1(-3.1415927); + // sincos r2.xy, r1.y, c0, c1 + temp2.xy = float2(cos(temp1.y), sin(temp1.y)); + // slt r1.y, v0.w, r0.z + temp1.y = (i.position.w < temp0.z) ? 1 : 0; + // mad r1.y, r1.y, -v2.y, v2.y + temp1.y = temp1.y * -i.texcoord1.y + i.texcoord1.y; + // frc r1.z, r1.y + temp1.z = frac(temp1.y); + // add r1.y, r1.y, -r1.z + temp1.y = temp1.y + -temp1.z; + // mova a0.y, r1.y + addr0.y = temp1.y; + // mul r1.yzw, r2.xxyx, c27[a0.y].xxyy + temp1.yzw = temp2.xyx * float3(-0.5, -0.5, -0.5); + // mad r2.y, c27[a0.y].x, -r2.y, r1.w + temp2.y = float1(-0.5) * -temp2.y + temp1.w; + // mov r3.xy, c27[a0.y] + temp3.xy = float2(-0.5, -0.5); + // mad r3.xy, r3, c37, c37.z + temp3.xy = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // add r2.x, r1.z, r1.y + temp2.x = temp1.z + temp1.y; + // mov r2.z, c27.z + temp2.z = float1(0); + // mov r4.xyz, c11[a0.x] + temp4.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r5.xyz, c66 + temp5.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r1.yzw, r4.xxyz, r5.xxyz, c65.xxyz + temp1.yzw = temp4.xyz * temp5.xyz + Update.Size_Rate_Damping__Min.xyz; + // mul r1.x, r1.x, c54.x + temp1.x = temp1.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // add r2.w, r1.w, c28.w + temp2.w = temp1.w + float1(-1); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // sge r2.w, -r2.w, r2.w + temp2.w = (-temp2.w >= temp2.w) ? 1 : 0; + // lrp r3.z, r2.w, c29.z, r1.w + temp3.z = lerp(temp1.w, float1(1.0001), temp2.w); + // log r1.w, r3.z + temp1.w = log2(temp3.z); + // mul r2.w, r1.w, c29.w + temp2.w = temp1.w * float1(0.6931472); + // mul r1.w, r0.z, r1.w + temp1.w = temp0.z * temp1.w; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // exp r1.w, r1.w + temp1.w = exp2(temp1.w); + // add r1.w, r1.w, c28.w + temp1.w = temp1.w + float1(-1); + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.y, r1.z, r1.w, r1.y + temp1.y = temp1.z * temp1.w + temp1.y; + // mad r2.xyz, r1.y, r2, r0.xyww + temp2.xyz = temp1.yyy * temp2.xyz + temp0.xyw; + // mov r2.w, -c28.w + temp2.w = float1(1); + // dp4 oPos.x, r2, c71 + o.position.x = dot(temp2, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c72 + o.position.y = dot(temp2, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r2, c74 + temp0.y = dot(temp2, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r2, c73 + temp0.x = dot(temp2, (WorldViewProjection._m02_m12_m22_m32)); + // rcp r0.w, r0.y + temp0.w = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT2.x, r0.x, r0.w + o.texcoord2 = temp0.x * temp0.w; + // mov r0.w, c28.w + temp0.w = float1(-1); + // mad r0.x, r0.z, c63.x, -r0.w + temp0.x = temp0.z * Draw.SpeedMultiplier.x + -temp0.w; + // mul r0.y, r0.x, c50.x + temp0.y = temp0.x * expr50.x; + // min r2.x, r0.x, c40.x + temp2.x = min(temp0.x, expr40.x); + // abs r0.x, r0.y + temp0.x = abs(temp0.y); + // sge r0.y, r0.y, -r0.y + temp0.y = (temp0.y >= -temp0.y) ? 1 : 0; + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // lrp r1.y, r0.y, r0.x, -r0.x + temp1.y = lerp(-temp0.x, temp0.x, temp0.y); + // mul r0.x, r1.y, c54.y + temp0.x = temp1.y * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r0.y, r0.x, c46.x + temp0.y = temp0.x * expr46.x; + // abs r0.w, r0.y + temp0.w = abs(temp0.y); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // sge r1.y, r0.y, -r0.y + temp1.y = (temp0.y >= -temp0.y) ? 1 : 0; + // lrp r3.z, r1.y, r0.w, -r0.w + temp3.z = lerp(-temp0.w, temp0.w, temp1.y); + // mul r0.x, r3.z, c54.x + temp0.x = temp3.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r1.yz, r0.xxyw + temp1.yz = frac(temp0.xy); + // add r0.xy, r0, -r1.yzzw + temp0.xy = temp0.xy + -temp1.yz; + // add r0.xy, r3, r0 + temp0.xy = temp3.xy + temp0.xy; + // mul r0.xy, r0, c46.x + temp0.xy = temp0.xy * expr46.xx; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r2.w, r1.x, r1.y, r1.z + temp2.w = temp1.x * temp1.y + temp1.z; + // mov r1.w, c27.z + temp1.w = float1(0); + // mul r3.z, r0.z, c63.x + temp3.z = temp0.z * Draw.SpeedMultiplier.x; + // min r2.y, r3.z, c40.x + temp2.y = min(temp3.z, expr40.x); + // frc r1.xyz, r2.yxxw + temp1.xyz = frac(temp2.yxx); + // add r1.zw, r2.xyxw, -r1 + temp1.zw = temp2.xw + -temp1.zw; + // add r4.xz, r2.yyxw, -r1.xyyw + temp4.xz = temp2.yx + -temp1.xy; + // add r1.xy, r3, r1.zwzw + temp1.xy = temp3.xy + temp1.zw; + // mul r1.xy, r1, c46.x + temp1.xy = temp1.xy * expr46.xx; + // frc r0.w, r3.z + temp0.w = frac(temp3.z); + // mul r2.x, r3.z, c50.x + temp2.x = temp3.z * expr50.x; + // frc r1.z, r2.y + temp1.z = frac(temp2.y); + // lrp r5.xyz, c51.x, r1, r0.xyww + temp5.xyz = lerp(temp0.xyw, temp1.xyz, expr51.xxx); + // mad r0.xy, v2.x, c38.x, c38.yzzw + temp0.xy = i.texcoord1.xx * float2(0.1875, 0.1875) + float2(4.8125, 2.75); + // frc r0.xy, r0 + temp0.xy = frac(temp0.xy); + // mul r0.xy, r0, c28.z + temp0.xy = temp0.xy * float2(16, 16); + // frc r1.xy, r0 + temp1.xy = frac(temp0.xy); + // add r0.xy, r0, -r1 + temp0.xy = temp0.xy + -temp1.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mov r0.x, c54.x + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r0.x, r0.x, c11[a0.x].x + temp0.x = temp0.x * float1(0.957897); + // mov r1.xy, c64 + temp1.xy = Draw.ColorScaleRange.xy; + // mad r0.y, c11[a0.y].x, r1.y, r1.x + temp0.y = float1(0.957897) * temp1.y + temp1.x; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // add r1.x, r0.x, -r0.w + temp1.x = temp0.x + -temp0.w; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r2.z, r0.x, r0.w, r1.x + temp2.z = temp0.x * temp0.w + temp1.x; + // add r0.xw, r3.xyzy, r2.zyzw + temp0.xw = temp3.xy + temp2.zw; + // mul r6.xy, r0.xwzw, c46.x + temp6.xy = temp0.xw * expr46.xx; + // mov r6.z, c27.z + temp6.z = float1(0); + // lrp r7.xyz, c52.x, r6, r5 + temp7.xyz = lerp(temp5.xyz, temp6.xyz, expr52.xxx); + // mov r4.w, c48.x + temp4.w = expr48.x; + // add r1.xy, r3, r4.zwzw + temp1.xy = temp3.xy + temp4.zw; + // mul r5.xy, r1, c46.x + temp5.xy = temp1.xy * expr46.xx; + // mov r5.z, r1.z + temp5.z = temp1.z; + // add r5.xyz, -r7, r5 + temp5.xyz = -temp7.xyz + temp5.xyz; + // mad oT3.xyz, c53.x, r5, r7 + o.texcoord3 = expr53.x * temp5 + temp7; + // mov r1.w, c27.z + temp1.w = float1(0); + // add r1.xy, r2.ywzw, -r1.zwzw + temp1.xy = temp2.yw + -temp1.zw; + // add r1.xy, r3, r1 + temp1.xy = temp3.xy + temp1.xy; + // abs r1.z, r2.x + temp1.z = abs(temp2.x); + // sge r1.w, r2.x, -r2.x + temp1.w = (temp2.x >= -temp2.x) ? 1 : 0; + // frc r1.z, r1.z + temp1.z = frac(temp1.z); + // lrp r2.x, r1.w, r1.z, -r1.z + temp2.x = lerp(-temp1.z, temp1.z, temp1.w); + // mul r1.z, r2.x, c54.y + temp1.z = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r1.w, r1.z, c46.x + temp1.w = temp1.z * expr46.x; + // abs r2.x, r1.w + temp2.x = abs(temp1.w); + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // sge r2.y, r1.w, -r1.w + temp2.y = (temp1.w >= -temp1.w) ? 1 : 0; + // lrp r3.z, r2.y, r2.x, -r2.x + temp3.z = lerp(-temp2.x, temp2.x, temp2.y); + // mul r1.z, r3.z, c54.x + temp1.z = temp3.z * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.xy, r1.zwzw + temp2.xy = frac(temp1.zw); + // add r1.zw, r1, -r2.xyxy + temp1.zw = temp1.zw + -temp2.xy; + // add r1.zw, r3.xyxy, r1 + temp1.zw = temp3.xy + temp1.zw; + // mul r1.zw, r1, c46.x + temp1.zw = temp1.zw * expr46.xx; + // mad r1.xy, r1, c46.x, -r1.zwzw + temp1.xy = temp1.xy * expr46.xx + -temp1.zw; + // mad r1.xy, c51.x, r1, r1.zwzw + temp1.xy = expr51.xx * temp1.xy + temp1.zw; + // mad r0.xw, r0, c46.x, -r1.xyzy + temp0.xw = temp0.xw * expr46.xx + -temp1.xy; + // mad r0.xw, c52.x, r0, r1.xyzy + temp0.xw = expr52.xx * temp0.xw + temp1.xy; + // mov r4.y, c45.x + temp4.y = expr45.x; + // add r1.xy, r3, r4 + temp1.xy = temp3.xy + temp4.xy; + // mad r1.xy, r1, c46.x, -r0.xwzw + temp1.xy = temp1.xy * expr46.xx + -temp0.xw; + // mad oT0.xy, c53.x, r1, r0.xwzw + o.texcoord = expr53.x * temp1 + temp0.xwzw; + // rcp r0.x, v0.w + temp0.x = 1.0f / i.position.w; + // mul r0.x, r0.z, r0.x + temp0.x = temp0.z * temp0.x; + // mov r1, c57 + temp1 = Draw.ColorAnimationFunctions[2]; + // mad r1, r1, r0.x, c58 + temp1 = temp1 * temp0.x + Draw.ColorAnimationFunctions[3]; + // mov r2, c59 + temp2 = Draw.ColorAnimationFunctions[4]; + // mad r2, r2, r0.x, c60 + temp2 = temp2 * temp0.x + Draw.ColorAnimationFunctions[5]; + // slt r0.zw, r0.x, c61.xyyz + temp0.zw = (temp0.xx < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c55 + temp3 = Draw.ColorAnimationFunctions[0]; + // mad r3, r3, r0.x, c56 + temp3 = temp3 * temp0.x + Draw.ColorAnimationFunctions[1]; + // lrp r4, r0.w, r1, r2 + temp4 = lerp(temp2, temp1, temp0.w); + // lrp r1, r0.z, r3, r4 + temp1 = lerp(temp4, temp3, temp0.z); + // mul oD0, r0.y, r1 + o.color = temp0.y * temp1; + // mov oT1.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // + + return o; +} + +// Default_Expression25 Expression_2_0 Has PRES False +float Default_Expression25() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c8.x, (-3) + temp0.x = Draw.ShaderType.x + (-3); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, (-2) + temp0.x = temp2.x + (-2); + // mul r1.x, r0.x, c9.x + temp1.x = temp0.x * ShouldDrawParticleSoft.x; + // add r0.x, r1.x, (2) + temp0.x = temp1.x + (2); + // mul c0.x, r0.x, (3) + expr0.x = temp0.x * (3); + return expr0; +} + +// Default_VertexShader26 Vertex_3_0 Has PRES True +struct Default_VertexShader26_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_VertexShader26_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; + float texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +Default_VertexShader26_Output Default_VertexShader26(Default_VertexShader26_Input i) +{ + /* + PRSI + OutputRegisterOffset: 38 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 19 + Unknown3: 3 + Unknown4: 0 + Unknown5: 38 + Unknown6: 2 + Mappings: 5 + 0 - ConstOutput: 45 ConstInput 2 + 1 - ConstOutput: 48 ConstInput 1 + 2 - ConstOutput: 50 ConstInput 1 + 3 - ConstOutput: 54 ConstInput 3 + 4 - ConstOutput: 1 ConstInput 0 + + */ + float4 expr38; + float4 expr39; + float4 expr40; + float4 expr41; + float4 expr42; + float4 expr43; + float4 expr44; + float4 expr45; + float4 expr46; + float4 expr47; + float4 expr48; + float4 expr49; + float4 expr50; + float4 expr51; + float4 expr52; + float4 expr53; + float4 expr54; + float4 expr55; + float4 expr56; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul c38.x, c1.x, (30) + expr38.x = Time.x * (30); + // add c39.x, c0.x, (-1) + expr39.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x + (-1); + // lt r0.x, (0), c0.z + temp0.x = (0) < Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z; + // neg r0.y, c0.w + temp0.y = -Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w; + // max r1.x, r0.y, c0.w + temp1.x = max(temp0.y, Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.w); + // neg r0.y, r1.x + temp0.y = -temp1.x; + // ge r2.x, r0.y, r1.x + temp2.x = temp0.y >= temp1.x; + // lt unknown1.x, r0.y, r1.x + unknown1.x = temp0.y < temp1.x; + // mul unknown0.x, r0.x, r2.x + unknown0.x = temp0.x * temp2.x; + // add r0.x, c0.z, (1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // max r2.x, r0.x, r1.x + temp2.x = max(temp0.x, temp1.x); + // neg r0.x, r2.x + temp0.x = -temp2.x; + // ge unknown2.x, r0.x, r2.x + unknown2.x = temp0.x >= temp2.x; + // rcp c55.x, c0.y + expr55.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y); + // add r0.x, c0.z, (-1) + temp0.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z + (-1); + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt r2.x, r0.x, r1.x + temp2.x = temp0.x < temp1.x; + // frc r0.y, c0.z + temp0.y = frac(Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.z); + // neg r1.x, r0.y + temp1.x = -temp0.y; + // lt r2.y, r1.x, r0.y + temp2.y = temp1.x < temp0.y; + // add r2.z, r0.x, r1.x + temp2.z = temp0.x + temp1.x; + // mul r0.x, r2.x, r2.y + temp0.x = temp2.x * temp2.y; + // add r1.x, r2.z, r0.x + temp1.x = temp2.z + temp0.x; + // mov c45.x, r1.x + expr45.x = temp1.x; + // mov c48.x, r1.x + expr48.x = temp1.x; + // rcp r0.x, c0.x + temp0.x = 1.0f / (Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x); + // mov c46.x, r0.x + expr46.x = temp0.x; + // mov c50.x, r0.x + expr50.x = temp0.x; + // mov c54.x, r0.x + expr54.x = temp0.x; + // mov c56.x, r0.x + expr56.x = temp0.x; + } + + Default_VertexShader26_Output o; + float4 temp0, temp1, temp2, addr0, temp3, temp4, temp5; + // def c36, 2.0625, 8.9375, 6.1875, 1.375 + // def c28, 0.5, -0.5, 16, -1 + // def c30, -0.5, 0.5, 0.1591549, 0.2 + // def c37, 1, -1, 0.5, 0 + // def c31, 0, 0, 6.283185, -3.141593 + // def c32, -0.25, -0.25, 0.1875, 4.8125 + // def c33, 0.25, -0.25, 0.1875, 2.75 + // def c29, 0.5, 0.5, 1.0001, 0.6931472 + // def c27, -0.5, -0.5, 0, 0.1875 + // def c11, 0.957897, 0.3788705, 0.3635719, 0.3287609 + // def c12, 0.1762373, 0.9145751, 0.4360935, 0.3476284 + // def c13, 0.743219, 0.4425611, 0.9974546, 0.3622138 + // def c14, 0.4896626, 0.6664233, 0.8305699, 0.9742577 + // def c15, 0.8947675, 0.8236215, 0.9309705, 0.05219847 + // def c16, 0.1411007, 0.6527002, 0.008452523, 0.6430574 + // def c17, 0.229799, 0.897999, 0.753822, 0.1316504 + // def c18, 0.5815384, 0.2836916, 0.09156471, 0.407481 + // def c19, 0.2706044, 0.7228181, 0.1694367, 0.1469052 + // def c20, 0.5995556, 0.0964533, 0.8763983, 0.1172229 + // def c21, 0.5101711, 0.9421572, 0.1957888, 0.9167565 + // def c22, 0.03546793, 0.5340094, 0.1673218, 0.5576764 + // def c23, 0.861564, 0.2251601, 0.082332, 0.8790039 + // def c24, 0.1730866, 0.8935188, 0.01392406, 0.1787381 + // def c25, 0.8269383, 0.7718143, 0.4395359, 0.493963 + // def c26, 0.5423613, 0.7218617, 0.7697314, 0.5878567 + // def c34, 0.25, 0.25, 0, 0 + // def c35, -0.25, 0.25, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_color o2 + // dcl_texcoord1 o3.xyz + // dcl_texcoord2 o4.x + // dcl_texcoord3 o5.xyz + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // add r0.x, c38.x, -v1.w + temp0.x = expr38.x + -i.texcoord.w; + // slt r0.y, v0.w, r0.x + temp0.y = (i.position.w < temp0.x) ? 1 : 0; + // mad r0.y, r0.y, -v2.y, v2.y + temp0.y = temp0.y * -i.texcoord1.y + i.texcoord1.y; + // rcp r0.z, v0.w + temp0.z = 1.0f / i.position.w; + // mul r0.z, r0.x, r0.z + temp0.z = temp0.x * temp0.z; + // mov r0.w, c27.w + temp0.w = float1(0.1875); + // mad r1, v2.x, r0.w, c36 + temp1 = i.texcoord1.x * temp0.w + float4(2.0625, 8.9375, 6.1875, 1.375); + // frc r1, r1 + temp1 = frac(temp1); + // mul r1, r1, c28.z + temp1 = temp1 * float4(16, 16, 16, 16); + // frc r2, r1 + temp2 = frac(temp1); + // add r1, r1, -r2 + temp1 = temp1 + -temp2; + // mova a0, r1 + addr0 = temp1; + // mov r1.xyz, c11[a0.x] + temp1.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r2.xyz, c69 + temp2.xyz = Update.Size_Rate_Damping__Spread.xyz; + // mad r1.xyz, r1, r2, c68 + temp1.xyz = temp1.xyz * temp2.xyz + Update.Size_Rate_Damping__Min.xyz; + // add r0.w, r1.z, c28.w + temp0.w = temp1.z + float1(-1); + // sge r0.w, -r0_abs.w, r0_abs.w + temp0.w = (r0.w == 0) ? 1 : 0; + // lrp r2.x, r0.w, c29.z, r1.z + temp2.x = lerp(temp1.z, float1(1.0001), temp0.w); + // log r0.w, r2.x + temp0.w = log2(temp2.x); + // mul r1.z, r0.x, r0.w + temp1.z = temp0.x * temp0.w; + // exp r1.z, r1.z + temp1.z = exp2(temp1.z); + // add r1.z, r1.z, c28.w + temp1.z = temp1.z + float1(-1); + // mul r0.w, r0.w, c29.w + temp0.w = temp0.w * float1(0.6931472); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mul r0.w, r1.z, r0.w + temp0.w = temp1.z * temp0.w; + // mad r0.w, r1.y, r0.w, r1.x + temp0.w = temp1.y * temp0.w + temp1.x; + // mov r1.xy, c84 + temp1.xy = Physics.VelocityDampingRange.xy; + // mad r1.x, c11[a0.y].x, r1.y, r1.x + temp1.x = float1(0.957897) * temp1.y + temp1.x; + // add r1.y, r1.x, c28.w + temp1.y = temp1.x + float1(-1); + // sge r1.y, -r1_abs.y, r1_abs.y + temp1.y = (r1.y == 0) ? 1 : 0; + // lrp r2.x, r1.y, c29.z, r1.x + temp2.x = lerp(temp1.x, float1(1.0001), temp1.y); + // log r1.x, r2.x + temp1.x = log2(temp2.x); + // mul r1.y, r0.x, r1.x + temp1.y = temp0.x * temp1.x; + // exp r1.y, r1.y + temp1.y = exp2(temp1.y); + // add r1.y, r1.y, c28.w + temp1.y = temp1.y + float1(-1); + // mul r1.x, r1.x, c29.w + temp1.x = temp1.x * float1(0.6931472); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mov r2.xyz, v0 + temp2.xyz = i.position.xyz; + // mad r1.xyz, v1, r1.x, r2 + temp1.xyz = i.texcoord.xyz * temp1.xxx + temp2.xyz; + // mul r1.w, r0.x, -c27.x + temp1.w = temp0.x * float1(0.5); + // mov r2.xyz, c82 + temp2.xyz = Physics.Gravity.xyz; + // mad r2.xyz, r1.w, r2, c83 + temp2.xyz = temp1.www * temp2.xyz + Physics.DriftVelocity.xyz; + // mad r1.xyz, r2, r0.x, r1 + temp1.xyz = temp2.xyz * temp0.xxx + temp1.xyz; + // add r2.xyz, r1.xyyw, -v0.xyyw + temp2.xyz = temp1.xyy + -i.position.xyy; + // mov r3.xyz, c11[a0.z] + temp3.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r4.xyz, c71 + temp4.xyz = Update.XYRotation_Rate_Damping__Spread.xyz; + // mad r3.xyz, r3, r4, c70 + temp3.xyz = temp3.xyz * temp4.xyz + Update.XYRotation_Rate_Damping__Min.xyz; + // add r1.w, r3.z, c28.w + temp1.w = temp3.z + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r2.w, r1.w, c29.z, r3.z + temp2.w = lerp(temp3.z, float1(1.0001), temp1.w); + // log r1.w, r2.w + temp1.w = log2(temp2.w); + // mul r2.w, r0.x, r1.w + temp2.w = temp0.x * temp1.w; + // exp r2.w, r2.w + temp2.w = exp2(temp2.w); + // add r2.w, r2.w, c28.w + temp2.w = temp2.w + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.w, r3.y, r1.w, r3.x + temp1.w = temp3.y * temp1.w + temp3.x; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.w + temp3.xy = float2(cos(temp1.w), sin(temp1.w)); + // mul r2.yzw, r2.xxyz, r3.xxyx + temp2.yzw = temp2.xyz * temp3.xyx; + // add r2.y, r2.z, r2.y + temp2.y = temp2.z + temp2.y; + // mad r2.z, r2.x, -r3.y, r2.w + temp2.z = temp2.x * -temp3.y + temp2.w; + // add r1.xy, r2.yzzw, v0 + temp1.xy = temp2.yz + i.position.xy; + // mov r2.xyz, c11[a0.w] + temp2.xyz = float3(0.957897, 0.37887052, 0.36357188); + // mov r3.xyz, c73 + temp3.xyz = Update.ZRotation_Rate_Damping__Spread.xyz; + // mad r2.yzw, r2.xxyz, r3.xxyz, c72.xxyz + temp2.yzw = temp2.xyz * temp3.xyz + Update.ZRotation_Rate_Damping__Min.xyz; + // add r1.w, r2.w, c28.w + temp1.w = temp2.w + float1(-1); + // sge r1.w, -r1_abs.w, r1_abs.w + temp1.w = (r1.w == 0) ? 1 : 0; + // lrp r3.x, r1.w, c29.z, r2.w + temp3.x = lerp(temp2.w, float1(1.0001), temp1.w); + // log r1.w, r3.x + temp1.w = log2(temp3.x); + // mul r2.w, r0.x, r1.w + temp2.w = temp0.x * temp1.w; + // exp r2.w, r2.w + temp2.w = exp2(temp2.w); + // add r2.w, r2.w, c28.w + temp2.w = temp2.w + float1(-1); + // mul r1.w, r1.w, c29.w + temp1.w = temp1.w * float1(0.6931472); + // rcp r1.w, r1.w + temp1.w = 1.0f / temp1.w; + // mul r1.w, r2.w, r1.w + temp1.w = temp2.w * temp1.w; + // mad r1.w, r2.z, r1.w, r2.y + temp1.w = temp2.z * temp1.w + temp2.y; + // mad r1.w, r1.w, c30.z, c30.y + temp1.w = temp1.w * float1(0.15915494) + float1(0.5); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c31.z, c31.w + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r1.w + temp3.xy = float2(cos(temp1.w), sin(temp1.w)); + // frc r1.w, r0.y + temp1.w = frac(temp0.y); + // add r0.y, r0.y, -r1.w + temp0.y = temp0.y + -temp1.w; + // mova a0.x, r0.y + addr0.x = temp0.y; + // mul r2.yzw, r3.xxyx, c27[a0.x].xxyy + temp2.yzw = temp3.xyx * float3(-0.5, -0.5, -0.5); + // add r3.x, r2.z, r2.y + temp3.x = temp2.z + temp2.y; + // mad r3.z, c27[a0.x].x, -r3.y, r2.w + temp3.z = float1(-0.5) * -temp3.y + temp2.w; + // mov r3.w, c27.z + temp3.w = float1(0); + // mad r1.xyz, r0.w, r3.xzww, r1 + temp1.xyz = temp0.www * temp3.xzw + temp1.xyz; + // mul r0.y, r0.w, c30.w + temp0.y = temp0.w * float1(0.2); + // mov r1.w, -c28.w + temp1.w = float1(1); + // dp4 r3.x, r1, c74 + temp3.x = dot(temp1, (WorldView._m00_m10_m20_m30)); + // dp4 r3.y, r1, c75 + temp3.y = dot(temp1, (WorldView._m01_m11_m21_m31)); + // dp4 r3.z, r1, c76 + temp3.z = dot(temp1, (WorldView._m02_m12_m22_m32)); + // dp4 r3.w, r1, c77 + temp3.w = dot(temp1, (WorldView._m03_m13_m23_m33)); + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // mul o7.x, r3.z, r0.y + o.texcoord5.x = temp3.z * temp0.y; + // dp4 r1.x, r3, c78 + temp1.x = dot(temp3, (Projection._m00_m10_m20_m30)); + // dp4 r1.y, r3, c79 + temp1.y = dot(temp3, (Projection._m01_m11_m21_m31)); + // dp4 r1.z, r3, c80 + temp1.z = dot(temp3, (Projection._m02_m12_m22_m32)); + // dp4 r1.w, r3, c81 + temp1.w = dot(temp3, (Projection._m03_m13_m23_m33)); + // rcp r0.w, r1.w + temp0.w = 1.0f / temp1.w; + // mul o4.x, r1.z, r0.w + o.texcoord2 = temp1.z * temp0.w; + // mov r3.xy, c27[a0.x] + temp3.xy = float2(-0.5, -0.5); + // mad r2.yz, r3.xxyw, c37.xxyw, c37.z + temp2.yz = temp3.xy * float2(1, -1) + float2(0.5, 0.5); + // mul r0.w, r0.x, c66.x + temp0.w = temp0.x * Draw.SpeedMultiplier.x; + // min r3.y, r0.w, c39.x + temp3.y = min(temp0.w, expr39.x); + // mov r2.w, c28.w + temp2.w = float1(-1); + // mad r0.x, r0.x, c66.x, -r2.w + temp0.x = temp0.x * Draw.SpeedMultiplier.x + -temp2.w; + // min r3.x, r0.x, c39.x + temp3.x = min(temp0.x, expr39.x); + // if b0 + if (Error ConstBool0Error) { + // frc r4.xy, r3.yxzw + temp4.xy = frac(temp3.yx); + // add r5.xz, r3.yyxw, -r4.xyyw + temp5.xz = temp3.yx + -temp4.xy; + // mov r5.y, c45.x + temp5.y = expr45.x; + // add r4.yz, r2, r5.xxyw + temp4.yz = temp2.yz + temp5.xy; + // mul o1.xy, r4.yzzw, c46.x + o.texcoord = temp4.yzzw * expr46.x; + // mov r5.w, c48.x + temp5.w = expr48.x; + // add r4.yz, r2, r5.xzww + temp4.yz = temp2.yz + temp5.zw; + // mul o5.xy, r4.yzzw, c46.x + o.texcoord3.xy = temp4.yz * expr46.xx; + // mov o5.z, r4.x + o.texcoord3.z = temp4.x; + // else + } else { + // mul r2.x, r2.x, c57.x + temp2.x = temp2.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r4.x, r2.x, -r2.w + temp4.x = temp2.x + -temp2.w; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r3.w, r2.x, r2.w, r4.x + temp3.w = temp2.x * temp2.w + temp4.x; + // if b1 + if (Error ConstBool1Error) { + // mad r2.x, v2.x, c32.z, c32.w + temp2.x = i.texcoord1.x * float1(0.1875) + float1(4.8125); + // frc r2.x, r2.x + temp2.x = frac(temp2.x); + // mul r2.x, r2.x, c28.z + temp2.x = temp2.x * float1(16); + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r2.x, r2.x, -r2.w + temp2.x = temp2.x + -temp2.w; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mov r2.x, c57.x + temp2.x = Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // mul r2.x, r2.x, c11[a0.x].x + temp2.x = temp2.x * float1(0.957897); + // frc r2.w, r2.x + temp2.w = frac(temp2.x); + // add r4.x, r2.x, -r2.w + temp4.x = temp2.x + -temp2.w; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r3.z, r2.x, r2.w, r4.x + temp3.z = temp2.x * temp2.w + temp4.x; + // add r2.xw, r2.yyzz, r3.zyzw + temp2.xw = temp2.yz + temp3.zw; + // mul r2.xw, r2, c50.x + temp2.xw = temp2.xw * expr50.xx; + // mov o5.z, c27.z + o.texcoord3.z = float1(0); + // mov o5.xy, r2.xwzw + o.texcoord3.xy = temp2.xw; + // mov o1.xy, r2.xwzw + o.texcoord = temp2.xwzw; + // else + } else { + // if b2 + if (Error ConstBool2Error) { + // frc r4.z, r3.y + temp4.z = frac(temp3.y); + // mov r4.w, c27.z + temp4.w = float1(0); + // add r2.xw, r3.yyzw, -r4.zyzw + temp2.xw = temp3.yw + -temp4.zw; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o1.xy, r2.xwzw, c54.x + o.texcoord = temp2.xwzw * expr54.x; + // frc r2.x, r3.x + temp2.x = frac(temp3.x); + // mov r2.w, c27.z + temp2.w = float1(0); + // add r2.xw, r3, -r2 + temp2.xw = temp3.xw + -temp2.xw; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul r4.xy, r2.xwzw, c54.x + temp4.xy = temp2.xw * expr54.xx; + // mov o5.xyz, r4 + o.texcoord3 = temp4; + // else + } else { + // mul r2.x, r0.w, c55.x + temp2.x = temp0.w * expr55.x; + // frc r2.w, r2_abs.x + temp2.w = frac(abs(temp2).x); + // sge r2.x, r2.x, -r2.x + temp2.x = (temp2.x >= -temp2.x) ? 1 : 0; + // lrp r3.x, r2.x, r2.w, -r2.w + temp3.x = lerp(-temp2.w, temp2.w, temp2.x); + // mul r2.x, r3.x, c57.y + temp2.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.w, r2.x, c56.x + temp2.w = temp2.x * expr56.x; + // frc r3.x, r2_abs.w + temp3.x = frac(abs(temp2).w); + // sge r3.y, r2.w, -r2.w + temp3.y = (temp2.w >= -temp2.w) ? 1 : 0; + // lrp r4.x, r3.y, r3.x, -r3.x + temp4.x = lerp(-temp3.x, temp3.x, temp3.y); + // mul r2.x, r4.x, c57.x + temp2.x = temp4.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r3.xy, r2.xwzw + temp3.xy = frac(temp2.xw); + // add r2.xw, r2, -r3.xyzy + temp2.xw = temp2.xw + -temp3.xy; + // add r2.xw, r2.yyzz, r2 + temp2.xw = temp2.yz + temp2.xw; + // mul o1.xy, r2.xwzw, c56.x + o.texcoord = temp2.xwzw * expr56.x; + // mul r0.x, r0.x, c55.x + temp0.x = temp0.x * expr55.x; + // frc r2.x, r0_abs.x + temp2.x = frac(abs(temp0).x); + // sge r0.x, r0.x, -r0.x + temp0.x = (temp0.x >= -temp0.x) ? 1 : 0; + // lrp r3.x, r0.x, r2.x, -r2.x + temp3.x = lerp(-temp2.x, temp2.x, temp0.x); + // mul r0.x, r3.x, c57.y + temp0.x = temp3.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.y; + // mul r2.w, r0.x, c56.x + temp2.w = temp0.x * expr56.x; + // frc r0.x, r2_abs.w + temp0.x = frac(abs(temp2).w); + // sge r3.x, r2.w, -r2.w + temp3.x = (temp2.w >= -temp2.w) ? 1 : 0; + // lrp r4.x, r3.x, r0.x, -r0.x + temp4.x = lerp(-temp0.x, temp0.x, temp3.x); + // mul r2.x, r4.x, c57.x + temp2.x = temp4.x * Draw.VideoTex_NumPerRow_LastFrame_SingleRow_isRand.x; + // frc r3.xy, r2.xwzw + temp3.xy = frac(temp2.xw); + // add r2.xw, r2, -r3.xyzy + temp2.xw = temp2.xw + -temp3.xy; + // add r2.xy, r2.yzzw, r2.xwzw + temp2.xy = temp2.yz + temp2.xw; + // mul o5.xy, r2, c56.x + o.texcoord3.xy = temp2.xy * expr56.xx; + // frc o5.z, r0.w + o.texcoord3.z = frac(temp0.w); + // endif + } + // endif + } + // endif + } + // mov r2, c58 + temp2 = Draw.ColorAnimationFunctions[0]; + // mad r2, r2, r0.z, c59 + temp2 = temp2 * temp0.z + Draw.ColorAnimationFunctions[1]; + // slt r0.xw, r0.z, c64.yyzz + temp0.xw = (temp0.zz < Draw.TimeKeys.yz) ? 1 : 0; + // mov r3, c60 + temp3 = Draw.ColorAnimationFunctions[2]; + // mad r3, r3, r0.z, c61 + temp3 = temp3 * temp0.z + Draw.ColorAnimationFunctions[3]; + // mov r4, c62 + temp4 = Draw.ColorAnimationFunctions[4]; + // mad r4, r4, r0.z, c63 + temp4 = temp4 * temp0.z + Draw.ColorAnimationFunctions[5]; + // lrp r5, r0.w, r3, r4 + temp5 = lerp(temp4, temp3, temp0.w); + // lrp r3, r0.x, r2, r5 + temp3 = lerp(temp5, temp2, temp0.x); + // mad r0.x, v2.x, c33.z, c33.w + temp0.x = i.texcoord1.x * float1(0.1875) + float1(2.75); + // frc r0.x, r0.x + temp0.x = frac(temp0.x); + // mul r0.x, r0.x, c28.z + temp0.x = temp0.x * float1(16); + // frc r0.z, r0.x + temp0.z = frac(temp0.x); + // add r0.x, r0.x, -r0.z + temp0.x = temp0.x + -temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r2.xy, c67 + temp2.xy = Draw.ColorScaleRange.xy; + // mad r0.x, c11[a0.x].x, r2.y, r2.x + temp0.x = float1(0.957897) * temp2.y + temp2.x; + // mul o2, r3, r0.x + o.color = temp3 * temp0.x; + // mov o0, r1 + o.position = temp1; + // mov o3.xyz, -c28.w + o.texcoord1 = float4(1, 1, 1, 1); + // mov o6, r1 + o.texcoord4 = temp1; + // mov o7.y, r0.y + o.texcoord5.y = temp0.y; + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_3_0 Default_VertexShader26(); // 39 + PixelShader = PS_Array_H[Default_Expression25()]; // 40 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader24(); // 45 + PixelShader = PS_Array_M[Default_M_Expression23()]; // 46 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_L_VertexShader22(); // 48 + PixelShader = compile ps_2_0 Default_L_PixelShader21(); // 49 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader20(); // 57 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression19()]; // 58 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/infantry.fx b/infantry.fx new file mode 100644 index 0000000..9c1f087 --- /dev/null +++ b/infantry.fx @@ -0,0 +1,4671 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(vs_2_0, c2) : register(vs_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient : register(vs_2_0, c11) : register(vs_3_0, c14) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c12) : register(vs_3_0, c15) = { 1, 1, 1 }; +float3 ColorSpecular : register(vs_2_0, c13) : register(vs_3_0, c16) ; +float Shininess : register(vs_2_0, c14) : register(vs_3_0, c17) = { 1 }; +float3 ColorEmissive : register(vs_2_0, c15) : register(vs_3_0, c18) ; +texture Texture_0 ; // 30 +sampler2D Texture_0Sampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 32 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c16) : register(vs_3_0, c19) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 41 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 48 +sampler2D CloudTextureSampler : register(ps_2_0, s3) : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 52 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r3, r0.w, c6 + temp4.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r5 + temp3.w = dot(temp0.xyz, temp5.xyz); + // slt r4.x, -r2.w, r2.w + temp4.x = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.x + temp2.w = temp2.w * temp4.x; + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.x, r4.x, r4.y + temp4.x = temp4.x * temp4.y; + // pow r4.y, r3.w, c17.x + temp4.y = pow(temp3.w, Shininess.x); + // mul r3.w, r4.x, r4.y + temp3.w = temp4.x * temp4.y; + // mul r4.xyz, r2.w, c5 + temp4.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4, c15 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r3, r0.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r5.w, -r3.w, r3.w + temp5.w = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.w + temp3.w = temp3.w * temp5.w; + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.w, r5.w, r6.x + temp5.w = temp5.w * temp6.x; + // pow r6.x, r4.w, c17.x + temp6.x = pow(temp4.w, Shininess.x); + // mul r4.w, r5.w, r6.x + temp4.w = temp5.w * temp6.x; + // mad r4.xyz, c5[a0.x], r3.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r3.xyz, -r1, c90 + temp3.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r1, c93 + temp4.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r4 + temp0.w = dot(temp0.xyz, temp4.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r4.xyz, r6, r0.w + temp4.xyz = temp6.xyz * temp0.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r1, c96 + temp4.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r4 + temp0.x = dot(temp0.xyz, temp4.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c13.x, r0, r3 + temp0.xyz = expr13.xxx * temp0.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r0.xyz, r0, c15, r3 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mul o1.xyz, r0, c0.z + o.texcoord1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, c1.x, v3.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r0.xyz, r5, c16 + temp0.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c0.z + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r1.z, c117.zwzw + temp2.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r1, c117, -r2 + temp2.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r1.xy, r1.yxzw, c19.wzzw + temp1.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r1.xyxy, c19.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o5.xyz, r0, r1.w, c3.xxyw + o.texcoord3.xyz = temp0.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r1.w, v4.w, c129[a0.x].w + temp1.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v4 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mad r4.xyz, r3, r2.w, c6 + temp4.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.x, r1, r5 + temp4.x = dot(temp1.xyz, temp5.xyz); + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r4.y + temp3.w = temp3.w * temp4.y; + // slt r4.z, -r4.x, r4.x + temp4.z = (-temp4.x < temp4.x) ? 1 : 0; + // mul r4.y, r4.y, r4.z + temp4.y = temp4.y * temp4.z; + // pow r5.x, r4.x, c17.x + temp5.x = pow(temp4.x, Shininess.x); + // mul r4.x, r4.y, r5.x + temp4.x = temp4.y * temp5.x; + // mul r4.yzw, r3.w, c5.xxyz + temp4.yzw = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r4.x, c5 + temp5.xyz = temp4.xxx * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4.yzww, c15 + temp4.xyz = temp4.yzw * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r3, r2.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r7 + temp5.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // slt r6.y, -r5.w, r5.w + temp6.y = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r5.w, c17.x + temp6.y = pow(temp5.w, Shininess.x); + // mul r5.w, r6.x, r6.y + temp5.w = temp6.x * temp6.y; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r5.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp5.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c89 + temp6.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r6, r2.w + temp3.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r0, c93 + temp4.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c92 + temp6.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r0, c96 + temp4.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c95 + temp6.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r4 + temp1.x = dot(temp1.xyz, temp4.xyz); + // max r1.x, r1.x, c3.x + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c13.x, r1, r3 + temp1.xyz = expr13.xxx * temp1.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r1.xyz, r1, c15, r3 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r1.xyz, r2, r1 + temp1.xyz = temp2.xyz * temp1.xyz; + // mul o1.xyz, r1, c0.z + o.texcoord1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r1.xyz, r5, c16 + temp1.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c19.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c19.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o5.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // mul r1.w, r1.w, v7.w + temp1.w = temp1.w * i.color.w; + // mul r2.xyz, c2, v7 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mad r4.xyz, r3, r2.w, c6 + temp4.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.x, r1, r5 + temp4.x = dot(temp1.xyz, temp5.xyz); + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r4.y + temp3.w = temp3.w * temp4.y; + // slt r4.z, -r4.x, r4.x + temp4.z = (-temp4.x < temp4.x) ? 1 : 0; + // mul r4.y, r4.y, r4.z + temp4.y = temp4.y * temp4.z; + // pow r5.x, r4.x, c17.x + temp5.x = pow(temp4.x, Shininess.x); + // mul r4.x, r4.y, r5.x + temp4.x = temp4.y * temp5.x; + // mul r4.yzw, r3.w, c5.xxyz + temp4.yzw = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r4.x, c5 + temp5.xyz = temp4.xxx * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4.yzww, c15 + temp4.xyz = temp4.yzw * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r3, r2.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r7 + temp5.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // slt r6.y, -r5.w, r5.w + temp6.y = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r5.w, c17.x + temp6.y = pow(temp5.w, Shininess.x); + // mul r5.w, r6.x, r6.y + temp5.w = temp6.x * temp6.y; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r5.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp5.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c89 + temp6.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r6, r2.w + temp3.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r0, c93 + temp4.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c92 + temp6.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r0, c96 + temp4.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c95 + temp6.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r4 + temp1.x = dot(temp1.xyz, temp4.xyz); + // max r1.x, r1.x, c3.x + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c13.x, r1, r3 + temp1.xyz = expr13.xxx * temp1.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r1.xyz, r1, c15, r3 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r1.xyz, r2, r1 + temp1.xyz = temp2.xyz * temp1.xyz; + // mul o1.xyz, r1, c0.z + o.texcoord1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r1.xyz, r5, c16 + temp1.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c19.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c19.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o5.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 57 + compile vs_3_0 VS_Array_Shader_1(), // 58 + compile vs_3_0 VS_Array_Shader_2(), // 59 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord5.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_6 Pixel_3_0 Has PRES False +struct PS_Array_Shader_6_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_6(PS_Array_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 2.2, 2, 1, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord5.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c1.y, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // mov r2.w, c1.z + temp2.w = float1(1); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_7 Pixel_3_0 Has PRES False +struct PS_Array_Shader_7_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_7(PS_Array_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 2.2, 2, 1, -1 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c1.y, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // mov r2.w, c1.z + temp2.w = float1(1); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r0, c1.y, c1.w + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c1.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_8 Pixel_3_0 Has PRES False +struct PS_Array_Shader_8_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_8(PS_Array_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 2.2, 2, 1, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c1.y, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // mov r2.w, c1.z + temp2.w = float1(1); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_9 Pixel_3_0 Has PRES False +struct PS_Array_Shader_9_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_9(PS_Array_Shader_9_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 2.2, 1, 0, 0.25 + // def c2, 2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c1.y, c1.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c1.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c1.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c2.x, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // mov r2.w, c1.y + temp2.w = float1(1); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_10 Pixel_3_0 Has PRES False +struct PS_Array_Shader_10_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_10(PS_Array_Shader_10_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 2.2, 1, 0, 0.25 + // def c2, 2, -1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c1.y, c1.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c1.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c1.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c2.x, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // mov r2.w, c1.y + temp2.w = float1(1); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // mad r0.xyz, r0, c2.x, c2.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c1.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_11 Pixel_3_0 Has PRES False +struct PS_Array_Shader_11_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_11(PS_Array_Shader_11_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 2.2, 1, 0, 0.25 + // def c2, 2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c1.y, c1.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c1.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c1.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c2.x, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // mov r2.w, c1.y + temp2.w = float1(1); + // mul r0, r0, r2 + temp0 = temp0 * temp2; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[12] = { + compile ps_3_0 PS_Array_Shader_0(), // 60 + compile ps_3_0 PS_Array_Shader_1(), // 61 + compile ps_3_0 PS_Array_Shader_2(), // 62 + compile ps_3_0 PS_Array_Shader_3(), // 63 + compile ps_3_0 PS_Array_Shader_4(), // 64 + compile ps_3_0 PS_Array_Shader_5(), // 65 + compile ps_3_0 PS_Array_Shader_6(), // 66 + compile ps_3_0 PS_Array_Shader_7(), // 67 + compile ps_3_0 PS_Array_Shader_8(), // 68 + compile ps_3_0 PS_Array_Shader_9(), // 69 + compile ps_3_0 PS_Array_Shader_10(), // 70 + compile ps_3_0 PS_Array_Shader_11(), // 71 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 color1 : COLOR1; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float3 temp5, temp7; + float addr0; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0, r7 + temp3.y = dot(temp0.xyz, temp7.xyz); + // dp3 r3.x, r0, c6[a0.x] + temp3.x = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v3, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // add r3.xy, r1.yxzw, c16.wzzw + temp3.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r3.xyxy, c16.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r3.x, r0, c6 + temp3.x = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r0.w, c6 + temp2.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0, r5 + temp3.y = dot(temp0.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r0, r3 + temp0 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.xyw, r0.y, c5.xyzz + temp0.xyw = temp0.yyy * DirectionalLight[0].Color.xyz; + // mul r0.xyw, r0, c12.xyzz + temp0.xyw = temp0.xyw * ColorDiffuse.xyz; + // mul r0.xyw, r4.xyzz, r0 + temp0.xyw = temp4.xyz * temp0.xyw; + // mul oT4.xyz, r0.xyww, c0.z + o.texcoord4 = temp0.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xyz, r0.z, c5 + temp0.xyz = temp0.zzz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, c13 + temp0.xyz = temp0.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r0, c0.z + o.texcoord5 = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add oT2.xy, r0, c118 + o.texcoord2.xy = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT3.xyz, r0.yzww, r2.x, c3.xxyw + o.texcoord3.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r0.x + o.texcoord3.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mul oT1.w, v3.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v4, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // add r3.xy, r0.yxzw, c16.wzzw + temp3.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r3.xyxy, c16.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c12.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r4.xyzz, r1 + temp1.xyw = temp4.xyz * temp1.xyw; + // mul oT4.xyz, r1.xyww, c3.z + o.texcoord4 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c13 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r1, c3.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.x + temp2.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r2.x, c0.xxyw + o.texcoord3.xyz = temp1.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 position : POSITION; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float2 addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v7.w + temp0.x = temp0.x * i.color.w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // add r2.xy, r0.yxzw, c16.wzzw + temp2.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r2.xyxy, c16.xyyx + o.texcoord2.zw = temp2.xy * Shroud.ScaleUV_OffsetUV.yx; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add oT2.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v7, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xzw, r1.z, c5.xyyz + temp1.xzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xzw, r1, c13.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r1.xzww, c3.z + o.texcoord5 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.z, r1.x + temp1.z = 1.0f / temp1.x; + // mad oT3.xyz, r2, r1.z, c0.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.zzz + float3(0, 0, -0.0015); + // mul r1.yzw, r1.y, c5.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.yzw, r1, c12.xxyz + temp1.yzw = temp1.yzw * ColorDiffuse.xyz; + // mul r1.yzw, r4.xxyz, r1 + temp1.yzw = temp4.xyz * temp1.yzw; + // mul oT4.xyz, r1.yzww, c3.z + o.texcoord4 = temp1.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 75 + compile vs_2_0 VS_M_Array_Shader_1(), // 76 + compile vs_2_0 VS_M_Array_Shader_2(), // 77 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t5 + temp3.xyz = i.texcoord5.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2, -1, 1, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t5 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_6 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_6_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_6(PS_M_Array_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 1, 0, 0 + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t5 + temp3.xyz = i.texcoord5.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c1.x, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov r1.w, c1.y + temp1.w = float1(1); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_7 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_7_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_7(PS_M_Array_Shader_7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 1, -1, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c1.x, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov r1.w, c1.y + temp1.w = float1(1); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r1.xyz, r0, c1.x, c1.z + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c1.y + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_8 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_8_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_8(PS_M_Array_Shader_8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 1, 0, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mul r2.xyz, r1, c0 + temp2.xyz = temp1.xyz * RecolorColor.xyz; + // mad r2.xyz, r2, c1.x, -r1 + temp2.xyz = temp2.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r1.xyz, r1.w, r2, r1 + temp1.xyz = temp1.www * temp2.xyz + temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov r1.w, c1.y + temp1.w = float1(1); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_9 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_9_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_9(PS_M_Array_Shader_9_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c1, 1, 0, 0.25, 2 + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c1.x, c1.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c1.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c1.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t5 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mul r1.xyz, r6, c0 + temp1.xyz = temp6.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c1.w, -r6 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp6.xyz; + // mad r1.xyz, r6.w, r1, r6 + temp1.xyz = temp6.www * temp1.xyz + temp6.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov r1.w, c1.x + temp1.w = float1(1); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_10 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_10_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_10(PS_M_Array_Shader_10_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c1, 1, 0, 0.25, 2 + // def c2, 2, -1, 0, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c1.x, c1.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c1.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c1.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mul r1.xyz, r6, c0 + temp1.xyz = temp6.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c1.w, -r6 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp6.xyz; + // mad r1.xyz, r6.w, r1, r6 + temp1.xyz = temp6.www * temp1.xyz + temp6.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov r1.w, c1.x + temp1.w = float1(1); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r1.xyz, r0, c2.x, c2.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c1.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_11 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_11_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_11(PS_M_Array_Shader_11_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c1, 1, 0, 0.25, 2 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c1.x, c1.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c1.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c1.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mul r1.xyz, r6, c0 + temp1.xyz = temp6.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c1.w, -r6 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp6.xyz; + // mad r1.xyz, r6.w, r1, r6 + temp1.xyz = temp6.www * temp1.xyz + temp6.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov r1.w, c1.x + temp1.w = float1(1); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[12] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 78 + compile ps_2_0 PS_M_Array_Shader_1(), // 79 + compile ps_2_0 PS_M_Array_Shader_2(), // 80 + compile ps_2_0 PS_M_Array_Shader_3(), // 81 + compile ps_2_0 PS_M_Array_Shader_4(), // 82 + compile ps_2_0 PS_M_Array_Shader_5(), // 83 + compile ps_2_0 PS_M_Array_Shader_6(), // 84 + compile ps_2_0 PS_M_Array_Shader_7(), // 85 + compile ps_2_0 PS_M_Array_Shader_8(), // 86 + compile ps_2_0 PS_M_Array_Shader_9(), // 87 + compile ps_2_0 PS_M_Array_Shader_10(), // 88 + compile ps_2_0 PS_M_Array_Shader_11(), // 89 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 96 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 97 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 98 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t1.x + // add r0, v0.x, c0.x + temp0 = i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 99 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 100 +}; +// _CreateShadowMap_Expression36 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression36() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c0.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt c0.x, r1.x, r0.x + expr0.x = temp1.x < temp0.x; + return expr0; +} + +// _CreateShadowMap_Expression37 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression37() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_L_Expression38 Expression_2_0 Has PRES False +float _Default_L_Expression38() +{ + float4 temp0; + float1 expr0; + // mul r0.x, c1.x, (3) + temp0.x = HasShadow.x * (3); + // mul r0.y, c0.x, (6) + temp0.y = HasRecolorColors.x * (6); + // add c0.x, r0.x, r0.y + expr0.x = temp0.x + temp0.y; + return expr0; +} + +// _Default_L_Expression39 Expression_2_0 Has PRES False +float _Default_L_Expression39() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression40 Expression_2_0 Has PRES False +float _Default_M_Expression40() +{ + float4 temp0; + float1 expr0; + // mul r0.x, c1.x, (3) + temp0.x = HasShadow.x * (3); + // mul r0.y, c0.x, (6) + temp0.y = HasRecolorColors.x * (6); + // add c0.x, r0.x, r0.y + expr0.x = temp0.x + temp0.y; + return expr0; +} + +// _Default_M_Expression41 Expression_2_0 Has PRES False +float _Default_M_Expression41() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression42 Expression_2_0 Has PRES False +float Default_Expression42() +{ + float4 temp0; + float1 expr0; + // mul r0.x, c1.x, (3) + temp0.x = HasShadow.x * (3); + // mul r0.y, c0.x, (6) + temp0.y = HasRecolorColors.x * (6); + // add c0.x, r0.x, r0.y + expr0.x = temp0.x + temp0.y; + return expr0; +} + +// Default_Expression43 Expression_2_0 Has PRES False +float Default_Expression43() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression43()]; // 73 + PixelShader = PS_Array[Default_Expression42()]; // 74 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression41()]; // 91 + PixelShader = PS_M_Array[_Default_M_Expression40()]; // 92 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression39()]; // 94 + PixelShader = PS_M_Array[_Default_L_Expression38()]; // 95 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression37()]; // 102 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression36()]; // 103 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/infantrychronorift.fx b/infantrychronorift.fx new file mode 100644 index 0000000..ed266b0 --- /dev/null +++ b/infantrychronorift.fx @@ -0,0 +1,3365 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(vs_2_0, c2) : register(vs_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient : register(vs_2_0, c11) : register(vs_3_0, c15) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c12) : register(vs_3_0, c16) = { 1, 1, 1 }; +float3 ColorSpecular : register(vs_2_0, c13) : register(vs_3_0, c17) ; +float Shininess : register(vs_2_0, c14) : register(vs_3_0, c18) = { 1 }; +float3 ColorEmissive : register(vs_2_0, c15) : register(vs_3_0, c19) ; +texture Texture_0 ; // 28 +sampler2D Texture_0Sampler = +sampler_state +{ + Texture = ; // 30 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c16) : register(vs_3_0, c20) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 39 +sampler2D ShroudTextureSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture ChronoRiftTexture ; // 46 +sampler2D ChronoRiftTextureSampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 49 + MipFilter = 2; + MinFilter = 2; + MagFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture CloudTexture ; // 53 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 57 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + // mul c14.x, c1.x, (0.3) + expr14.x = Time.x * (0.3); + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7, temp8; + // def c0, 1, 0, 0.5, 0 + // def c3, 0.05, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r4.xyz, r3, r0.w + temp4.xyz = temp3.xyz * temp0.www; + // mad r5.xyz, r3, r0.w, c6 + temp5.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r6 + temp3.w = dot(temp0.xyz, temp6.xyz); + // slt r4.w, -r2.w, r2.w + temp4.w = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.w + temp2.w = temp2.w * temp4.w; + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.w, r4.w, r5.x + temp4.w = temp4.w * temp5.x; + // pow r5.x, r3.w, c18.x + temp5.x = pow(temp3.w, Shininess.x); + // mul r3.w, r4.w, r5.x + temp3.w = temp4.w * temp5.x; + // mul r5.xyz, r2.w, c5 + temp5.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r3.w, c5 + temp6.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c16 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c17 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c0.y + temp6.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r7.xyz, r3, r0.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r8 + temp4.w = dot(temp0.xyz, temp8.xyz); + // slt r5.w, -r3.w, r3.w + temp5.w = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.w + temp3.w = temp3.w * temp5.w; + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.w, r5.w, r6.w + temp5.w = temp5.w * temp6.w; + // pow r6.w, r4.w, c18.x + temp6.w = pow(temp4.w, Shininess.x); + // mul r4.w, r5.w, r6.w + temp4.w = temp5.w * temp6.w; + // mad r5.xyz, c5[a0.x], r3.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r4.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp6.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r3.xyz, -r1, c90 + temp3.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c89 + temp7.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r7, r0.w + temp3.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r1, c93 + temp5.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r5, r5 + temp0.w = dot(temp5.xyz, temp5.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r5.xyz, r5, r0.w + temp5.xyz = temp5.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c92 + temp7.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r5 + temp0.w = dot(temp0.xyz, temp5.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r5.xyz, r7, r0.w + temp5.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r1, c96 + temp5.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r5, r5 + temp0.w = dot(temp5.xyz, temp5.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r5.xyz, r5, r0.w + temp5.xyz = temp5.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c95 + temp7.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.w, r0, r5 + temp0.w = dot(temp0.xyz, temp5.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r5.xyz, r7, r0.w + temp5.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c15 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c19 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c16, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c0.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, c1.x, v3.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r2.xyz, r6, c17 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r1, c113 + temp2.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r1, c114 + temp2.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r1, c115 + temp2.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r1.z, c117.zwzw + temp3.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r1, c117, -r3 + temp3.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r3.xy, r1.yxzw, c20.wzzw + temp3.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r3.xyxy, c20.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.x, r4, r0 + temp0.x = dot(temp4.xyz, temp0.xyz); + // add r0.x, -r0.x, c0.x + temp0.x = -temp0.x + float1(1); + // mul o8.xyz, r0.x, r0.x + o.texcoord6 = temp0.x * temp0.x; + // mad r0.xy, r1, c3.x, v2 + temp0.xy = temp1.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add o3.xy, r0, c14.x + o.texcoord = temp0 + expr14.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o5.xyz, r2, r1.w, c3.yyzw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + // mul c14.x, c1.x, (0.3) + expr14.x = Time.x * (0.3); + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7, temp8; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, 0.05, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r1.w, v4.w, c129[a0.x].w + temp1.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v4 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r5.xyz, r3, r2.w, c6 + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c18.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c16 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c17 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c3.x + temp6.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r7.xyz, r3, r2.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r8 + temp5.w = dot(temp1.xyz, temp8.xyz); + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.w + temp4.w = temp4.w * temp6.w; + // slt r7.x, -r5.w, r5.w + temp7.x = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.w, r6.w, r7.x + temp6.w = temp6.w * temp7.x; + // pow r7.x, r5.w, c18.x + temp7.x = pow(temp5.w, Shininess.x); + // mul r5.w, r6.w, r7.x + temp5.w = temp6.w * temp7.x; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r5.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp6.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c89 + temp7.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r7, r2.w + temp3.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r0, c93 + temp5.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c92 + temp7.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r0, c96 + temp5.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c95 + temp7.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c15 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c19 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c16, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c0.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r2.xyz, r6, c17 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r0.z, c117.zwzw + temp3.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r0, c117, -r3 + temp3.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r3.xy, r0.yxzw, c20.wzzw + temp3.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r3.xyxy, c20.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.z, r4, r1 + temp0.z = dot(temp4.xyz, temp1.xyz); + // add r0.z, -r0.z, c0.x + temp0.z = -temp0.z + float1(1); + // mul o8.xyz, r0.z, r0.z + o.texcoord6 = temp0.z * temp0.z; + // mad r0.xy, r0, c3.y, v3 + temp0.xy = temp0.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add o3.xy, r0, c14.x + o.texcoord = temp0 + expr14.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o5.xyz, r2, r1.w, c3.xxzw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + // mul c14.x, c1.x, (0.3) + expr14.x = Time.x * (0.3); + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7, temp8; + // def c0, 0, 0.05, -0.0015, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // mul r1.w, r1.w, v7.w + temp1.w = temp1.w * i.color.w; + // mul r2.xyz, c2, v7 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r5.xyz, r3, r2.w, c6 + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c18.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c16 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c3.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c17 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c3.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c0.x + temp6.xyz = float3(0, 0, 0); + // mov r3.w, c3.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r7.xyz, r3, r2.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r8 + temp5.w = dot(temp1.xyz, temp8.xyz); + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.w + temp4.w = temp4.w * temp6.w; + // slt r7.x, -r5.w, r5.w + temp7.x = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.w, r6.w, r7.x + temp6.w = temp6.w * temp7.x; + // pow r7.x, r5.w, c18.x + temp7.x = pow(temp5.w, Shininess.x); + // mul r5.w, r6.w, r7.x + temp5.w = temp6.w * temp7.x; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r5.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp6.xyz; + // add r3.w, r3.w, c3.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c3.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c89 + temp7.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c0.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r7, r2.w + temp3.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r0, c93 + temp5.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c3.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c92 + temp7.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c0.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r0, c96 + temp5.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c3.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c95 + temp7.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c0.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c15 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c19 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c16, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c3.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r2.xyz, r6, c17 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c3.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r0.z, c117.zwzw + temp3.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r0, c117, -r3 + temp3.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r3.xy, r0.yxzw, c20.wzzw + temp3.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r3.xyxy, c20.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.z, r4, r1 + temp0.z = dot(temp4.xyz, temp1.xyz); + // add r0.z, -r0.z, c3.x + temp0.z = -temp0.z + float1(1); + // mul o8.xyz, r0.z, r0.z + o.texcoord6 = temp0.z * temp0.z; + // mad r0.xy, r0, c0.y, v6 + temp0.xy = temp0.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add o3.xy, r0, c14.x + o.texcoord = temp0 + expr14.x; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o5.xyz, r2, r1.w, c0.xxzw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 62 + compile vs_3_0 VS_Array_Shader_1(), // 63 + compile vs_3_0 VS_Array_Shader_2(), // 64 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 50, 2, 0, 0 + // def c1, 2.2, 0.3, 0.6, 3 + // dcl_texcoord1 v0.w + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, v1.yxzw, v1.yxzw + temp0.xy = i.texcoord.yx + i.texcoord.yx; + // texld r1, r0.yxzw, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp0.yx); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mul r1.xyz, c1.yzww, v3 + temp1.xyz = float3(0.3, 0.6, 3) * i.texcoord6.xyz; + // mad r0.xyz, r0, c0.x, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.y + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // texld r0, v2.wzzw, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 50, 2, 0, 0 + // def c1, 2.2, 0.3, 0.6, 3 + // dcl_texcoord1 v0.w + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, v1.yxzw, v1.yxzw + temp0.xy = i.texcoord.yx + i.texcoord.yx; + // texld r1, r0.yxzw, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp0.yx); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mul r1.xyz, c1.yzww, v3 + temp1.xyz = float3(0.3, 0.6, 3) * i.texcoord6.xyz; + // mad r0.xyz, r0, c0.x, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.y + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // texld r0, v2.wzzw, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 50, 2, 0, 0 + // def c1, 2.2, 0.3, 0.6, 3 + // dcl_texcoord1 v0.w + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, v1.yxzw, v1.yxzw + temp0.xy = i.texcoord.yx + i.texcoord.yx; + // texld r1, r0.yxzw, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp0.yx); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mul r1.xyz, c1.yzww, v3 + temp1.xyz = float3(0.3, 0.6, 3) * i.texcoord6.xyz; + // mad r0.xyz, r0, c0.x, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.y + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // texld r0, v2.wzzw, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 50, 2, 0, 0 + // def c1, 2.2, 0.3, 0.6, 3 + // dcl_texcoord1 v0.w + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, v1.yxzw, v1.yxzw + temp0.xy = i.texcoord.yx + i.texcoord.yx; + // texld r1, r0.yxzw, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp0.yx); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mul r1.xyz, c1.yzww, v3 + temp1.xyz = float3(0.3, 0.6, 3) * i.texcoord6.xyz; + // mad r0.xyz, r0, c0.x, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.y + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // texld r0, v2.wzzw, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 50, 2, 0, 0 + // def c1, 2.2, 0.3, 0.6, 3 + // dcl_texcoord1 v0.w + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, v1.yxzw, v1.yxzw + temp0.xy = i.texcoord.yx + i.texcoord.yx; + // texld r1, r0.yxzw, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp0.yx); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mul r1.xyz, c1.yzww, v3 + temp1.xyz = float3(0.3, 0.6, 3) * i.texcoord6.xyz; + // mad r0.xyz, r0, c0.x, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.y + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // texld r0, v2.wzzw, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 50, 2, 0, 0 + // def c1, 2.2, 0.3, 0.6, 3 + // dcl_texcoord1 v0.w + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.xy, v1.yxzw, v1.yxzw + temp0.xy = i.texcoord.yx + i.texcoord.yx; + // texld r1, r0.yxzw, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp0.yx); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mul r1.xyz, c1.yzww, v3 + temp1.xyz = float3(0.3, 0.6, 3) * i.texcoord6.xyz; + // mad r0.xyz, r0, c0.x, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.y + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // texld r0, v2.wzzw, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +PixelShader PS_Array[6] = { + compile ps_3_0 PS_Array_Shader_0(), // 65 + compile ps_3_0 PS_Array_Shader_1(), // 66 + compile ps_3_0 PS_Array_Shader_2(), // 67 + compile ps_3_0 PS_Array_Shader_3(), // 68 + compile ps_3_0 PS_Array_Shader_4(), // 69 + compile ps_3_0 PS_Array_Shader_5(), // 70 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float2 texcoord : TEXCOORD; + float4 color1 : COLOR1; + float4 texcoord1 : TEXCOORD1; + float3 texcoord5 : TEXCOORD5; + float3 texcoord4 : TEXCOORD4; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + { + // Expression_2_1 + // mul c17.x, c0.x, (0.3) + expr17.x = Time.x * (0.3); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, 0.5, 0 + // def c3, 0.05, 0, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mad r0.xy, r1, c3.x, v2 + temp0.xy = temp1.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add oT0.xy, r0, c17.x + o.texcoord = temp0 + expr17.x; + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0, r7 + temp3.y = dot(temp0.xyz, temp7.xyz); + // dp3 r3.x, r0, c6[a0.x] + temp3.x = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v3, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0, c6 + temp3.x = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r0.w, c6 + temp2.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0, r5 + temp3.y = dot(temp0.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r0, r3 + temp0 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.xzw, r0.z, c5.xyyz + temp0.xzw = temp0.zzz * DirectionalLight[0].Color.xyz; + // mul r0.xzw, r0, c13.xyyz + temp0.xzw = temp0.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r0.xzww, c0.z + o.texcoord5 = temp0.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xyz, r0.y, c5 + temp0.xyz = temp0.yyy * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mul oT4.xyz, r0, c0.z + o.texcoord4 = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add oT2.xy, r0, c118 + o.texcoord2.xy = temp0.xy + Cloud.CurrentOffsetUV.xy; + // add r0.x, -r2.w, c0.x + temp0.x = -temp2.w + float1(1); + // mul oT6.xyz, r0.x, r0.x + o.texcoord6 = temp0.x * temp0.x; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT3.xyz, r0.yzww, r2.x, c3.yyzw + o.texcoord3.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // add r0.yz, r1.xyxw, c16.xwzw + temp0.yz = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r0.xyyz, c16.xyyx + o.texcoord2.zw = temp0.yz * Shroud.ScaleUV_OffsetUV.yx; + // mov oT3.w, r0.x + o.texcoord3.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mul oT1.w, v3.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 position : POSITION; + float4 color1 : COLOR1; + float3 texcoord5 : TEXCOORD5; + float3 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; + float4 texcoord3 : TEXCOORD3; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + { + // Expression_2_1 + // mul c17.x, c0.x, (0.3) + expr17.x = Time.x * (0.3); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, 0.05, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mov r0.w, c0.x + temp0.w = float1(1); + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r0.xyz, r1, c129[a0.x] + temp0.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r1.xy, r0, c3.y, v3 + temp1.xy = temp0.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add oT0.xy, r1, c17.x + o.texcoord = temp1 + expr17.x; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v4, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xzw, r1.z, c5.xyyz + temp1.xzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xzw, r1, c13.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r1.xzww, c0.z + o.texcoord5 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, c5 + temp1.xyz = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r4, r1 + temp1.xyz = temp4.xyz * temp1.xyz; + // mul oT4.xyz, r1, c0.z + o.texcoord4 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // add r1.xy, r0.yxzw, c16.wzzw + temp1.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r1.xyxy, c16.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // add r1.x, -r2.w, c0.x + temp1.x = -temp2.w + float1(1); + // mul oT6.xyz, r1.x, r1.x + o.texcoord6 = temp1.x * temp1.x; + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r0.x, r1.x + temp0.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r0.x, c3.xxzw + o.texcoord3.xyz = temp1.yzw * temp0.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 color1 : COLOR1; + float3 texcoord5 : TEXCOORD5; + float3 texcoord4 : TEXCOORD4; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + { + // Expression_2_1 + // mul c17.x, c0.x, (0.3) + expr17.x = Time.x * (0.3); + } + + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, 0.05, -0.0015, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v7.w + temp0.x = temp0.x * i.color.w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mad r2.xy, r0, c3.y, v6 + temp2.xy = temp0.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add oT0.xy, r2, c17.x + o.texcoord = temp2 + expr17.x; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v7, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xzw, r1.z, c5.xyyz + temp1.xzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xzw, r1, c13.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r1.xzww, c0.z + o.texcoord5 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, c5 + temp1.xyz = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r4, r1 + temp1.xyz = temp4.xyz * temp1.xyz; + // mul oT4.xyz, r1, c0.z + o.texcoord4 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // add r1.x, -r2.w, c0.x + temp1.x = -temp2.w + float1(1); + // mul oT6.xyz, r1.x, r1.x + o.texcoord6 = temp1.x * temp1.x; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.x + temp2.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r2.x, c3.xxzw + o.texcoord3.xyz = temp1.yzw * temp2.xxx + float3(0, 0, -0.0015); + // add r1.yz, r0.xyxw, c16.xwzw + temp1.yz = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r1.xyyz, c16.xyyx + o.texcoord2.zw = temp1.yz * Shroud.ScaleUV_OffsetUV.yx; + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 73 + compile vs_2_0 VS_M_Array_Shader_1(), // 74 + compile vs_2_0 VS_M_Array_Shader_2(), // 75 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.3, 0.6, 3, 2 + // dcl t1 + // dcl t0.xy + // dcl t2 + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.x, t0.y, t0.y + temp0.x = i.texcoord.y + i.texcoord.y; + // add r0.y, t0.x, t0.x + temp0.y = i.texcoord.x + i.texcoord.x; + // mov r1.x, r0.y + temp1.x = temp0.y; + // mov r1.y, r0.x + temp1.y = temp0.x; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp1.xy); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, t6, c0 + temp1.xyz = i.texcoord6.xyz * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c0.z, r1 + temp0.xyz = temp0.xyz * float3(3, 3, 3) + temp1.xyz; + // min r1.xyz, r0, c0.w + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.3, 0.6, 3, 2 + // def c1, -1, 1, 0, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.x, t0.y, t0.y + temp0.x = i.texcoord.y + i.texcoord.y; + // add r0.y, t0.x, t0.x + temp0.y = i.texcoord.x + i.texcoord.x; + // mov r1.x, r0.y + temp1.x = temp0.y; + // mov r1.y, r0.x + temp1.y = temp0.x; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp1.xy); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, t6, c0 + temp1.xyz = i.texcoord6.xyz * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c0.z, r1 + temp0.xyz = temp0.xyz * float3(3, 3, 3) + temp1.xyz; + // min r1.xyz, r0, c0.w + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // add r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c1.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.3, 0.6, 3, 2 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.x, t0.y, t0.y + temp0.x = i.texcoord.y + i.texcoord.y; + // add r0.y, t0.x, t0.x + temp0.y = i.texcoord.x + i.texcoord.x; + // mov r1.x, r0.y + temp1.x = temp0.y; + // mov r1.y, r0.x + temp1.y = temp0.x; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp1.xy); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, t6, c0 + temp1.xyz = i.texcoord6.xyz * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c0.z, r1 + temp0.xyz = temp0.xyz * float3(3, 3, 3) + temp1.xyz; + // min r1.xyz, r0, c0.w + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mul r0.xyz, r1, v1.w + temp0.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.3, 0.6, 3, 2 + // dcl t1 + // dcl t0.xy + // dcl t2 + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.x, t0.y, t0.y + temp0.x = i.texcoord.y + i.texcoord.y; + // add r0.y, t0.x, t0.x + temp0.y = i.texcoord.x + i.texcoord.x; + // mov r1.x, r0.y + temp1.x = temp0.y; + // mov r1.y, r0.x + temp1.y = temp0.x; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp1.xy); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, t6, c0 + temp1.xyz = i.texcoord6.xyz * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c0.z, r1 + temp0.xyz = temp0.xyz * float3(3, 3, 3) + temp1.xyz; + // min r1.xyz, r0, c0.w + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.3, 0.6, 3, 2 + // def c1, -1, 1, 0, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.x, t0.y, t0.y + temp0.x = i.texcoord.y + i.texcoord.y; + // add r0.y, t0.x, t0.x + temp0.y = i.texcoord.x + i.texcoord.x; + // mov r1.x, r0.y + temp1.x = temp0.y; + // mov r1.y, r0.x + temp1.y = temp0.x; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp1.xy); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, t6, c0 + temp1.xyz = i.texcoord6.xyz * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c0.z, r1 + temp0.xyz = temp0.xyz * float3(3, 3, 3) + temp1.xyz; + // min r1.xyz, r0, c0.w + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // add r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c1.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.3, 0.6, 3, 2 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t6.xyz + // dcl_2d s0 + // dcl_2d s1 + // add r0.x, t0.y, t0.y + temp0.x = i.texcoord.y + i.texcoord.y; + // add r0.y, t0.x, t0.x + temp0.y = i.texcoord.x + i.texcoord.x; + // mov r1.x, r0.y + temp1.x = temp0.y; + // mov r1.y, r0.x + temp1.y = temp0.x; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ChronoRiftTextureSampler, temp1.xy); + // texld r0, r0, s1 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mul r1.xyz, t6, c0 + temp1.xyz = i.texcoord6.xyz * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c0.z, r1 + temp0.xyz = temp0.xyz * float3(3, 3, 3) + temp1.xyz; + // min r1.xyz, r0, c0.w + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mul r0.xyz, r1, v1.w + temp0.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[6] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 76 + compile ps_2_0 PS_M_Array_Shader_1(), // 77 + compile ps_2_0 PS_M_Array_Shader_2(), // 78 + compile ps_2_0 PS_M_Array_Shader_3(), // 79 + compile ps_2_0 PS_M_Array_Shader_4(), // 80 + compile ps_2_0 PS_M_Array_Shader_5(), // 81 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 86 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 87 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 88 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mad r0, v0.x, r0.w, c0.x + temp0 = i.color.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 89 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 90 +}; +// _CreateDepthMap_Expression24 Expression_2_0 Has PRES False +float _CreateDepthMap_Expression24() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c0.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt c0.x, r1.x, r0.x + expr0.x = temp1.x < temp0.x; + return expr0; +} + +// _CreateDepthMap_Expression25 Expression_2_0 Has PRES False +float _CreateDepthMap_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_L_Expression26 Expression_2_0 Has PRES False +float _Default_L_Expression26() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_L_Expression27 Expression_2_0 Has PRES False +float _Default_L_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression28 Expression_2_0 Has PRES False +float _Default_M_Expression28() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_M_Expression29 Expression_2_0 Has PRES False +float _Default_M_Expression29() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression30 Expression_2_0 Has PRES False +float Default_Expression30() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression31 Expression_2_0 Has PRES False +float Default_Expression31() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression31()]; // 71 + PixelShader = PS_Array[Default_Expression30()]; // 72 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression29()]; // 82 + PixelShader = PS_M_Array[_Default_M_Expression28()]; // 83 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression27()]; // 84 + PixelShader = PS_M_Array[_Default_L_Expression26()]; // 85 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateDepthMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateDepthMap_Expression25()]; // 92 + PixelShader = PSCreateShadowMap_Array[_CreateDepthMap_Expression24()]; // 93 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/infantryformationpreview.fx b/infantryformationpreview.fx new file mode 100644 index 0000000..ad7f7f8 --- /dev/null +++ b/infantryformationpreview.fx @@ -0,0 +1,2395 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(vs_2_0, c2) : register(vs_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 1 }; +float3 ColorSpecular : register(vs_2_0, c12) : register(vs_3_0, c12) ; +float Shininess : register(vs_2_0, c13) : register(vs_3_0, c13) = { 1 }; +float3 ColorEmissive ; +texture Texture_0 ; // 28 +sampler2D Texture_0Sampler = +sampler_state +{ + Texture = ; // 30 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c14) : register(vs_3_0, c14) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 39 +sampler2D ShroudTextureSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 46 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 50 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float3 temp5, temp6; + float addr0; + // def c0, 1, 0, 0.5, 2 + // def c3, 2.5, 0, -0.0015, 0 + // def c4, 0, 1, 0.055, 0.045 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r4.xyz, r3, r0.w + temp4.xyz = temp3.xyz * temp0.www; + // mad r5.xyz, r3, r0.w, c6 + temp5.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r6 + temp3.w = dot(temp0.xyz, temp6.xyz); + // slt r4.w, -r2.w, r2.w + temp4.w = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.w + temp2.w = temp2.w * temp4.w; + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.w, r4.w, r5.x + temp4.w = temp4.w * temp5.x; + // pow r5.x, r3.w, c13.x + temp5.x = pow(temp3.w, Shininess.x); + // mul r3.w, r4.w, r5.x + temp3.w = temp4.w * temp5.x; + // mul r5.xyz, r2.w, c5 + temp5.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r3.w, c5 + temp6.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c11 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r2.xyz, r2, r5 + temp2.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r2, c0.z + o.texcoord4 = temp2 * float4(0.5, 0.5, 0.5, 0.5); + // mul r2.xyz, r6, c12 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r2, c0.z + o.texcoord5 = temp2 * float4(0.5, 0.5, 0.5, 0.5); + // mov r2, c0.yyyx + temp2 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r5.xyz, r3, r0.w, c6[a0.x] + temp5.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r6 + temp4.w = dot(temp0.xyz, temp6.xyz); + // slt r3.w, -r3.w, r3.w + temp3.w = (-temp3.w < temp3.w) ? 1 : 0; + // slt r5.x, -r4.w, r4.w + temp5.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // pow r5.x, r4.w, c13.x + temp5.x = pow(temp4.w, Shininess.x); + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // mad r2.xyz, c5[a0.x], r3.w, r2 + temp2.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp2.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul o1.w, c1.x, v3.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r2.xyz, r2, c12 + temp2.xyz = temp2.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r1, c113 + temp2.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r1, c114 + temp2.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r1, c115 + temp2.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r1.z, c117.zwzw + temp3.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r1, c117, -r3 + temp3.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r1.xy, r1.yxzw, c14.wzzw + temp1.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r1.xyxy, c14.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.x, r4, r0 + temp0.x = dot(temp4.xyz, temp0.xyz); + // add r0.x, -r0.x, c0.x + temp0.x = -temp0.x + float1(1); + // pow r1.x, r0.x, c3.x + temp1.x = pow(temp0.x, float1(2.5)); + // mad r0.xyz, r1.x, c4.xyxw, c4.xzww + temp0.xyz = temp1.xxx * float3(0, 1, 0) + float3(0, 0.055, 0.045); + // min o1.xyz, r0, c0.w + o.texcoord1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o5.xyz, r2, r1.w, c3.yyzw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + float3 temp5, temp6; + // def c0, 1, -1, 0.5, 2 + // def c3, 0, 2.5, -0.0015, 0 + // def c4, 0, 1, 0.055, 0.045 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r1.w, v4.w, c129[a0.x].w + temp1.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v4 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r5.xyz, r3, r2.w, c6 + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c13.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c11 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r2.xyz, r2, r5 + temp2.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r2, c0.z + o.texcoord4 = temp2 * float4(0.5, 0.5, 0.5, 0.5); + // mul r2.xyz, r6, c12 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r2, c0.z + o.texcoord5 = temp2 * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.xyz, c3.x + temp2.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r5.xyz, r3, r2.w, c6[a0.x] + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.x, r1, r6 + temp5.x = dot(temp1.xyz, temp6.xyz); + // slt r4.w, -r4.w, r4.w + temp4.w = (-temp4.w < temp4.w) ? 1 : 0; + // slt r5.y, -r5.x, r5.x + temp5.y = (-temp5.x < temp5.x) ? 1 : 0; + // mul r4.w, r4.w, r5.y + temp4.w = temp4.w * temp5.y; + // pow r6.x, r5.x, c13.x + temp6.x = pow(temp5.x, Shininess.x); + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // mad r2.xyz, c5[a0.x], r4.w, r2 + temp2.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp2.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r2.xyz, r2, c12 + temp2.xyz = temp2.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r0.z, c117.zwzw + temp3.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r0, c117, -r3 + temp3.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c14.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c14.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.x, r4, r1 + temp0.x = dot(temp4.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.x + temp0.x = -temp0.x + float1(1); + // pow r1.x, r0.x, c3.y + temp1.x = pow(temp0.x, float1(2.5)); + // mad r0.xyz, r1.x, c4.xyxw, c4.xzww + temp0.xyz = temp1.xxx * float3(0, 1, 0) + float3(0, 0.055, 0.045); + // min o1.xyz, r0, c0.w + o.texcoord1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o5.xyz, r2, r1.w, c3.xxzw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES False +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float2 addr0; + float3 temp5, temp6; + // def c0, 1, -1, 0.5, 2 + // def c3, 0, 2.5, -0.0015, 0 + // def c4, 0, 1, 0.055, 0.045 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // mul r1.w, r1.w, v7.w + temp1.w = temp1.w * i.color.w; + // mul r2.xyz, c2, v7 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r5.xyz, r3, r2.w, c6 + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c13.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c11 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r2.xyz, r2, r5 + temp2.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r2, c0.z + o.texcoord4 = temp2 * float4(0.5, 0.5, 0.5, 0.5); + // mul r2.xyz, r6, c12 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r2, c0.z + o.texcoord5 = temp2 * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.xyz, c3.x + temp2.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r5.xyz, r3, r2.w, c6[a0.x] + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.x, r1, r6 + temp5.x = dot(temp1.xyz, temp6.xyz); + // slt r4.w, -r4.w, r4.w + temp4.w = (-temp4.w < temp4.w) ? 1 : 0; + // slt r5.y, -r5.x, r5.x + temp5.y = (-temp5.x < temp5.x) ? 1 : 0; + // mul r4.w, r4.w, r5.y + temp4.w = temp4.w * temp5.y; + // pow r6.x, r5.x, c13.x + temp6.x = pow(temp5.x, Shininess.x); + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // mad r2.xyz, c5[a0.x], r4.w, r2 + temp2.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp2.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r2.xyz, r2, c12 + temp2.xyz = temp2.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r0.z, c117.zwzw + temp3.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r0, c117, -r3 + temp3.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c14.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c14.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.x, r4, r1 + temp0.x = dot(temp4.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.x + temp0.x = -temp0.x + float1(1); + // pow r1.x, r0.x, c3.y + temp1.x = pow(temp0.x, float1(2.5)); + // mad r0.xyz, r1.x, c4.xyxw, c4.xzww + temp0.xyz = temp1.xxx * float3(0, 1, 0) + float3(0, 0.055, 0.045); + // min o1.xyz, r0, c0.w + o.texcoord1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o5.xyz, r2, r1.w, c3.xxzw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 55 + compile vs_3_0 VS_Array_Shader_1(), // 56 + compile vs_3_0 VS_Array_Shader_2(), // 57 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl_texcoord1 v0 + // dcl_texcoord2 v1.zw + // dcl_2d s0 + // texld r0, v1.wzzw, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, v0 + out_color.xyz = temp0.xyz * i.texcoord1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // def c0, -1, 1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.w + // dcl_texcoord2 v2.zw + // dcl_2d s0 + // add r0.xyz, c0.x, v0 + temp0.xyz = float3(-1, -1, -1) + i.texcoord1.xyz; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v2.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_texcoord1 v0 + // dcl_color1 v1.w + // dcl_texcoord2 v2.zw + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v2.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl_texcoord1 v0 + // dcl_texcoord2 v1.zw + // dcl_2d s0 + // texld r0, v1.wzzw, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, v0 + out_color.xyz = temp0.xyz * i.texcoord1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // def c0, -1, 1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.w + // dcl_texcoord2 v2.zw + // dcl_2d s0 + // add r0.xyz, c0.x, v0 + temp0.xyz = float3(-1, -1, -1) + i.texcoord1.xyz; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v2.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float3 temp0; + float4 temp1; + // dcl_texcoord1 v0 + // dcl_color1 v1.w + // dcl_texcoord2 v2.zw + // dcl_2d s0 + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v2.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +PixelShader PS_Array[6] = { + compile ps_3_0 PS_Array_Shader_0(), // 58 + compile ps_3_0 PS_Array_Shader_1(), // 59 + compile ps_3_0 PS_Array_Shader_2(), // 60 + compile ps_3_0 PS_Array_Shader_3(), // 61 + compile ps_3_0 PS_Array_Shader_4(), // 62 + compile ps_3_0 PS_Array_Shader_5(), // 63 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 texcoord2 : TEXCOORD2; + float4 color1 : COLOR1; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord1 : TEXCOORD1; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6; + // def c0, 1, 0, 0.5, 2 + // def c3, 2.5, 0, -0.0015, 0 + // def c4, 0, 1, 0.055, 0.045 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r0.xy, r1.yxzw, c14.wzzw + temp0.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r0.xyxy, c14.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mov r3.zw, c13.x + temp3.zw = Shininess.x; + // mov r4, c0.yyyx + temp4 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.x, r4.w, r4.w + temp5.x = temp4.w + temp4.w; + // mova a0.x, r5.x + addr0.x = temp5.x; + // mad r5.xyz, r2, r0.w, c6[a0.x] + temp5.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.y, r0, r6 + temp3.y = dot(temp0.xyz, temp6.xyz); + // dp3 r3.x, r0, c6[a0.x] + temp3.x = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r5, r3 + temp5 = lit(temp3.x, temp3.y, temp3.w); + // mad r4.xyz, c5[a0.x], r5.z, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.zzz + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r4, c12 + temp3.xyz = temp4.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mad r2.xyz, r2, r0.w, c6 + temp2.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0, r3 + temp3.y = dot(temp0.xyz, temp3.xyz); + // dp3 r3.x, r0, c6 + temp3.x = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // mov r3.zw, c13.x + temp3.zw = Shininess.x; + // lit r0, r3 + temp0 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.xyw, r0.y, c5.xyzz + temp0.xyw = temp0.yyy * DirectionalLight[0].Color.xyz; + // mul r0.xyw, r0, c11.xyzz + temp0.xyw = temp0.xyw * ColorDiffuse.xyz; + // mul r2.xyz, v3, c2 + temp2.xyz = i.color.xyz * TintColor.xyz; + // mul r0.xyw, r0, r2.xyzz + temp0.xyw = temp0.xyw * temp2.xyz; + // mul oT4.xyz, r0.xyww, c0.z + o.texcoord4 = temp0.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add oT2.xy, r0, c118 + o.texcoord2.xy = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xyz, r0.z, c5 + temp0.xyz = temp0.zzz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r0, c0.z + o.texcoord5 = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // add r0.x, -r2.w, c0.x + temp0.x = -temp2.w + float1(1); + // pow r2.x, r0.x, c3.x + temp2.x = pow(temp0.x, float1(2.5)); + // mad r0.xyz, r2.x, c4.xyxw, c4.xzww + temp0.xyz = temp2.xxx * float3(0, 1, 0) + float3(0, 0.055, 0.045); + // min oT1.xyz, r0, c0.w + o.texcoord1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT3.xyz, r0.yzww, r2.x, c3.yyzw + o.texcoord3.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r0.x + o.texcoord3.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mul oT1.w, v3.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord5 : TEXCOORD5; + float3 texcoord4 : TEXCOORD4; + float4 color1 : COLOR1; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6; + // def c0, 1, -1, 0.5, 2 + // def c3, 0, 2.5, -0.0015, 0 + // def c4, 0, 1, 0.055, 0.045 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // add r1.xy, r0.yxzw, c14.wzzw + temp1.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r1.xyxy, c14.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r2.x, r1, c6 + temp2.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r4.xyz, r3, r1.w + temp4.xyz = temp3.xyz * temp1.www; + // dp3 r3.w, r4, r1 + temp3.w = dot(temp4.xyz, temp1.xyz); + // mad r4.xyz, r3, r1.w, c6 + temp4.xyz = temp3.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r2.y, r1, r5 + temp2.y = dot(temp1.xyz, temp5.xyz); + // mov r2.zw, c13.x + temp2.zw = Shininess.x; + // lit r2, r2 + temp2 = lit(temp2.x, temp2.y, temp2.w); + // mul r2.xzw, r2.z, c5.xyyz + temp2.xzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r2.xzw, r2, c12.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r2.xzww, c0.z + o.texcoord5 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r2.xz, r0.z, c117.zyww + temp2.xz = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xz, r0.xyyw, c117.xyyw, -r2 + temp2.xz = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xz; + // add oT2.xy, r2.xzzw, c118 + o.texcoord2.xy = temp2.xz + Cloud.CurrentOffsetUV.xy; + // add r2.x, -r3.w, c0.x + temp2.x = -temp3.w + float1(1); + // pow r3.w, r2.x, c3.y + temp3.w = pow(temp2.x, float1(2.5)); + // mad r2.xzw, r3.w, c4.xyyx, c4 + temp2.xzw = temp3.www * float3(0, 1, 0) + float3(0, 0.055, 0.045); + // min oT1.xyz, r2.xzww, c0.w + o.texcoord1.xyz = min(temp2.xzw, float3(2, 2, 2)); + // mul r2.xyz, r2.y, c5 + temp2.xyz = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c11 + temp2.xyz = temp2.xyz * ColorDiffuse.xyz; + // mul r4.xyz, v4, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r2.xyz, r2, r4 + temp2.xyz = temp2.xyz * temp4.xyz; + // mul oT4.xyz, r2, c0.z + o.texcoord4 = temp2 * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.zw, c13.x + temp2.zw = Shininess.x; + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r5.xyz, r3, r1.w, c6[a0.x] + temp5.xyz = temp3.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.y, r1, r6 + temp2.y = dot(temp1.xyz, temp6.xyz); + // dp3 r2.x, r1, c6[a0.x] + temp2.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r5, r2 + temp5 = lit(temp2.x, temp2.y, temp2.w); + // mad r4.xyz, c5[a0.x], r5.z, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.zzz + temp4.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // mul r1.xyz, r4, c12 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.x + temp2.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r2.x, c3.xxzw + o.texcoord3.xyz = temp1.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord5 : TEXCOORD5; + float3 texcoord4 : TEXCOORD4; + float4 color1 : COLOR1; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6; + // def c0, 1, -1, 0.5, 2 + // def c3, 0, 2.5, -0.0015, 0 + // def c4, 0, 1, 0.055, 0.045 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v7.w + temp0.x = temp0.x * i.color.w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // add r2.xy, r0.yxzw, c14.wzzw + temp2.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r2.xyxy, c14.xyyx + o.texcoord2.zw = temp2.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r2.x, r1, c6 + temp2.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r4.xyz, r3, r1.w + temp4.xyz = temp3.xyz * temp1.www; + // dp3 r3.w, r4, r1 + temp3.w = dot(temp4.xyz, temp1.xyz); + // mad r4.xyz, r3, r1.w, c6 + temp4.xyz = temp3.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r2.y, r1, r5 + temp2.y = dot(temp1.xyz, temp5.xyz); + // mov r2.zw, c13.x + temp2.zw = Shininess.x; + // lit r2, r2 + temp2 = lit(temp2.x, temp2.y, temp2.w); + // mul r2.xzw, r2.z, c5.xyyz + temp2.xzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r2.xzw, r2, c12.xyyz + temp2.xzw = temp2.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r2.xzww, c0.z + o.texcoord5 = temp2.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r2.xz, r0.z, c117.zyww + temp2.xz = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xz, r0.xyyw, c117.xyyw, -r2 + temp2.xz = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xz; + // add oT2.xy, r2.xzzw, c118 + o.texcoord2.xy = temp2.xz + Cloud.CurrentOffsetUV.xy; + // add r2.x, -r3.w, c0.x + temp2.x = -temp3.w + float1(1); + // pow r3.w, r2.x, c3.y + temp3.w = pow(temp2.x, float1(2.5)); + // mad r2.xzw, r3.w, c4.xyyx, c4 + temp2.xzw = temp3.www * float3(0, 1, 0) + float3(0, 0.055, 0.045); + // min oT1.xyz, r2.xzww, c0.w + o.texcoord1.xyz = min(temp2.xzw, float3(2, 2, 2)); + // mul r2.xyz, r2.y, c5 + temp2.xyz = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, c11 + temp2.xyz = temp2.xyz * ColorDiffuse.xyz; + // mul r4.xyz, v7, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r2.xyz, r2, r4 + temp2.xyz = temp2.xyz * temp4.xyz; + // mul oT4.xyz, r2, c0.z + o.texcoord4 = temp2 * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.zw, c13.x + temp2.zw = Shininess.x; + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r5.xyz, r3, r1.w, c6[a0.x] + temp5.xyz = temp3.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.y, r1, r6 + temp2.y = dot(temp1.xyz, temp6.xyz); + // dp3 r2.x, r1, c6[a0.x] + temp2.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r5, r2 + temp5 = lit(temp2.x, temp2.y, temp2.w); + // mad r4.xyz, c5[a0.x], r5.z, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.zzz + temp4.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // mul r1.xyz, r4, c12 + temp1.xyz = temp4.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.x + temp2.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r2.x, c3.xxzw + o.texcoord3.xyz = temp1.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 67 + compile vs_2_0 VS_M_Array_Shader_1(), // 68 + compile vs_2_0 VS_M_Array_Shader_2(), // 69 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, -1, 1, 0, 0 + // dcl t1 + // dcl v1 + // dcl t2 + // dcl_2d s0 + // add r0.xyz, t1, c0.x + temp0.xyz = i.texcoord1.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mov r1.xy, t2.wzyx + temp1.xy = i.texcoord2.wz; + // texld r1, r1, s0 + temp1 = tex2D(ShroudTextureSampler, temp1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // dcl t1 + // dcl v1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mul r0.xyz, r0, t1 + temp0.xyz = temp0.xyz * i.texcoord1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, -1, 1, 0, 0 + // dcl t1 + // dcl v1 + // dcl t2 + // dcl_2d s0 + // add r0.xyz, t1, c0.x + temp0.xyz = i.texcoord1.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mov r1.xy, t2.wzyx + temp1.xy = i.texcoord2.wz; + // texld r1, r1, s0 + temp1 = tex2D(ShroudTextureSampler, temp1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // dcl t1 + // dcl v1 + // dcl t2 + // dcl_2d s0 + // mov r0.xy, t2.wzyx + temp0.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[6] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 70 + compile ps_2_0 PS_M_Array_Shader_1(), // 71 + compile ps_2_0 PS_M_Array_Shader_2(), // 72 + compile ps_2_0 PS_M_Array_Shader_3(), // 73 + compile ps_2_0 PS_M_Array_Shader_4(), // 74 + compile ps_2_0 PS_M_Array_Shader_5(), // 75 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 82 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 83 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 84 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mad r0, v0.x, r0.w, c0.x + temp0 = i.color.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 85 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 86 +}; +// _CreateDepthMap_Expression24 Expression_2_0 Has PRES False +float _CreateDepthMap_Expression24() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c0.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt c0.x, r1.x, r0.x + expr0.x = temp1.x < temp0.x; + return expr0; +} + +// _CreateDepthMap_Expression25 Expression_2_0 Has PRES False +float _CreateDepthMap_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_L_Expression26 Expression_2_0 Has PRES False +float _Default_L_Expression26() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_L_Expression27 Expression_2_0 Has PRES False +float _Default_L_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression28 Expression_2_0 Has PRES False +float _Default_M_Expression28() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_M_Expression29 Expression_2_0 Has PRES False +float _Default_M_Expression29() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression30 Expression_2_0 Has PRES False +float Default_Expression30() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression31 Expression_2_0 Has PRES False +float Default_Expression31() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression31()]; // 65 + PixelShader = PS_Array[Default_Expression30()]; // 66 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression29()]; // 77 + PixelShader = PS_M_Array[_Default_M_Expression28()]; // 78 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression27()]; // 80 + PixelShader = PS_M_Array[_Default_L_Expression26()]; // 81 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateDepthMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateDepthMap_Expression25()]; // 88 + PixelShader = PSCreateShadowMap_Array[_CreateDepthMap_Expression24()]; // 89 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/infantryfrozen.fx b/infantryfrozen.fx new file mode 100644 index 0000000..2f6355d --- /dev/null +++ b/infantryfrozen.fx @@ -0,0 +1,4863 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(vs_2_0, c2) : register(vs_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient : register(vs_2_0, c11) : register(vs_3_0, c14) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c12) : register(vs_3_0, c15) = { 1, 1, 1 }; +float3 ColorSpecular : register(vs_2_0, c13) : register(vs_3_0, c16) ; +float Shininess : register(vs_2_0, c14) : register(vs_3_0, c17) = { 1 }; +float3 ColorEmissive : register(vs_2_0, c15) : register(vs_3_0, c18) ; +texture Texture_0 ; // 28 +sampler2D Texture_0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 30 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c16) : register(vs_3_0, c19) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 39 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture FrozenNormalMap ; // 46 +sampler2D FrozenNormalMapSampler = +sampler_state +{ + Texture = ; // 49 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 53 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 57 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture CloudTexture ; // 62 +sampler2D CloudTextureSampler : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 66 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7, temp8; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // dcl_texcoord7 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r4.xyz, r3, r0.w + temp4.xyz = temp3.xyz * temp0.www; + // mad r5.xyz, r3, r0.w, c6 + temp5.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r6 + temp3.w = dot(temp0.xyz, temp6.xyz); + // slt r4.w, -r2.w, r2.w + temp4.w = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.w + temp2.w = temp2.w * temp4.w; + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.w, r4.w, r5.x + temp4.w = temp4.w * temp5.x; + // pow r5.x, r3.w, c17.x + temp5.x = pow(temp3.w, Shininess.x); + // mul r3.w, r4.w, r5.x + temp3.w = temp4.w * temp5.x; + // mul r5.xyz, r2.w, c5 + temp5.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r3.w, c5 + temp6.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c15 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c16 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c0.y + temp6.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r7.xyz, r3, r0.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r8 + temp4.w = dot(temp0.xyz, temp8.xyz); + // slt r5.w, -r3.w, r3.w + temp5.w = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.w + temp3.w = temp3.w * temp5.w; + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.w, r5.w, r6.w + temp5.w = temp5.w * temp6.w; + // pow r6.w, r4.w, c17.x + temp6.w = pow(temp4.w, Shininess.x); + // mul r4.w, r5.w, r6.w + temp4.w = temp5.w * temp6.w; + // mad r5.xyz, c5[a0.x], r3.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r4.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp6.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r3.xyz, -r1, c90 + temp3.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c89 + temp7.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r7, r0.w + temp3.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r1, c93 + temp5.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r5, r5 + temp0.w = dot(temp5.xyz, temp5.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r5.xyz, r5, r0.w + temp5.xyz = temp5.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c92 + temp7.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r5 + temp0.w = dot(temp0.xyz, temp5.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r5.xyz, r7, r0.w + temp5.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r1, c96 + temp5.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r5, r5 + temp0.w = dot(temp5.xyz, temp5.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r5.xyz, r5, r0.w + temp5.xyz = temp5.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c95 + temp7.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.w, r0, r5 + temp0.w = dot(temp0.xyz, temp5.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r5.xyz, r7, r0.w + temp5.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c14 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c18 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c15, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c0.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, c1.x, v3.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r2.xyz, r6, c16 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r1, c113 + temp2.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r1, c114 + temp2.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r1, c115 + temp2.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r1.z, c117.zwzw + temp3.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r1, c117, -r3 + temp3.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r1.xy, r1.yxzw, c19.wzzw + temp1.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r1.xyxy, c19.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o5.xyz, r2, r1.w, c3.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // mov o8.xyz, r0 + o.texcoord6 = temp0; + // mov o9.xyz, r4 + o.texcoord7 = temp4; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7, temp8; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // dcl_texcoord7 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r1.w, v4.w, c129[a0.x].w + temp1.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v4 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r5.xyz, r3, r2.w, c6 + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c17.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c15 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c16 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c3.x + temp6.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r7.xyz, r3, r2.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r8 + temp5.w = dot(temp1.xyz, temp8.xyz); + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.w + temp4.w = temp4.w * temp6.w; + // slt r7.x, -r5.w, r5.w + temp7.x = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.w, r6.w, r7.x + temp6.w = temp6.w * temp7.x; + // pow r7.x, r5.w, c17.x + temp7.x = pow(temp5.w, Shininess.x); + // mul r5.w, r6.w, r7.x + temp5.w = temp6.w * temp7.x; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r5.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp6.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c89 + temp7.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r7, r2.w + temp3.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r0, c93 + temp5.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c92 + temp7.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r0, c96 + temp5.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c95 + temp7.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c14 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c18 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c15, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c0.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r2.xyz, r6, c16 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r0.z, c117.zwzw + temp3.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r0, c117, -r3 + temp3.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c19.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c19.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o5.xyz, r2, r1.w, c3.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // mov o8.xyz, r1 + o.texcoord6 = temp1; + // mov o9.xyz, r4 + o.texcoord7 = temp4; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7, temp8; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // dcl_texcoord7 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // mul r1.w, r1.w, v7.w + temp1.w = temp1.w * i.color.w; + // mul r2.xyz, c2, v7 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r5.xyz, r3, r2.w, c6 + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c17.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c15 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c16 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c3.x + temp6.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r7.xyz, r3, r2.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r8 + temp5.w = dot(temp1.xyz, temp8.xyz); + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.w + temp4.w = temp4.w * temp6.w; + // slt r7.x, -r5.w, r5.w + temp7.x = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.w, r6.w, r7.x + temp6.w = temp6.w * temp7.x; + // pow r7.x, r5.w, c17.x + temp7.x = pow(temp5.w, Shininess.x); + // mul r5.w, r6.w, r7.x + temp5.w = temp6.w * temp7.x; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r5.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp6.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c89 + temp7.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r7, r2.w + temp3.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r0, c93 + temp5.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c92 + temp7.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r0, c96 + temp5.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c95 + temp7.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c14 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c18 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c15, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c0.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r2.xyz, r6, c16 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r0.z, c117.zwzw + temp3.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r0, c117, -r3 + temp3.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c19.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c19.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o5.xyz, r2, r1.w, c3.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // mov o8.xyz, r1 + o.texcoord6 = temp1; + // mov o9.xyz, r4 + o.texcoord7 = temp4; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 71 + compile vs_3_0 VS_Array_Shader_1(), // 72 + compile vs_3_0 VS_Array_Shader_2(), // 73 +}; +// VS_Frozen_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; +}; + +struct VS_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +VS_Frozen_Array_Shader_0_Output VS_Frozen_Array_Shader_0(VS_Frozen_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7, temp8; + // def c0, 1, 0, 1.5, 0.5 + // def c3, 0, 0.025, 0, -0.0015 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // dcl_texcoord7 o9.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v2 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mad r1.xyz, r0, c0.z, r1 + temp1.xyz = temp0.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r4.xyz, r3, r0.w + temp4.xyz = temp3.xyz * temp0.www; + // mad r5.xyz, r3, r0.w, c6 + temp5.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r6 + temp3.w = dot(temp0.xyz, temp6.xyz); + // slt r4.w, -r2.w, r2.w + temp4.w = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.w + temp2.w = temp2.w * temp4.w; + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.w, r4.w, r5.x + temp4.w = temp4.w * temp5.x; + // pow r5.x, r3.w, c17.x + temp5.x = pow(temp3.w, Shininess.x); + // mul r3.w, r4.w, r5.x + temp3.w = temp4.w * temp5.x; + // mul r5.xyz, r2.w, c5 + temp5.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r3.w, c5 + temp6.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c15 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.w + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c16 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.w + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c0.y + temp6.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r7.xyz, r3, r0.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r8 + temp4.w = dot(temp0.xyz, temp8.xyz); + // slt r5.w, -r3.w, r3.w + temp5.w = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.w + temp3.w = temp3.w * temp5.w; + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.w, r5.w, r6.w + temp5.w = temp5.w * temp6.w; + // pow r6.w, r4.w, c17.x + temp6.w = pow(temp4.w, Shininess.x); + // mul r4.w, r5.w, r6.w + temp4.w = temp5.w * temp6.w; + // mad r5.xyz, c5[a0.x], r3.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r4.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp6.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r3.xyz, -r1, c90 + temp3.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c89 + temp7.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r7, r0.w + temp3.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r1, c93 + temp5.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r5, r5 + temp0.w = dot(temp5.xyz, temp5.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r5.xyz, r5, r0.w + temp5.xyz = temp5.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c92 + temp7.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r5 + temp0.w = dot(temp0.xyz, temp5.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r5.xyz, r7, r0.w + temp5.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r1, c96 + temp5.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r5, r5 + temp0.w = dot(temp5.xyz, temp5.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r5.xyz, r5, r0.w + temp5.xyz = temp5.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c95 + temp7.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.w, r0, r5 + temp0.w = dot(temp0.xyz, temp5.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r5.xyz, r7, r0.w + temp5.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c14 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c18 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c15, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c0.w + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, c1.x, v2.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r2.xyz, r6, c16 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.w + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r1, c113 + temp2.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r1, c114 + temp2.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r1, c115 + temp2.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul o3.xy, r1, c3.y + o.texcoord = temp1 * float4(0.025, 0.025, 0.025, 0.025); + // mul r3.xy, r1.z, c117.zwzw + temp3.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r1, c117, -r3 + temp3.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r1.xy, r1.yxzw, c19.wzzw + temp1.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r1.xyxy, c19.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o5.xyz, r2, r1.w, c3.zzww + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // mov o8.xyz, r0 + o.texcoord6 = temp0; + // mov o9.xyz, r4 + o.texcoord7 = temp4; + // + + return o; +} + +// VS_Frozen_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Frozen_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; +}; + +struct VS_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +VS_Frozen_Array_Shader_1_Output VS_Frozen_Array_Shader_1(VS_Frozen_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7, temp8; + // def c0, 1, -1, 1.5, 0.5 + // def c3, 0, 0, 0.025, -0.0015 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // dcl_texcoord7 o9.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r0.w, v3.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mad r3.xyz, r1, c0.z, r0 + temp3.xyz = temp1.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mov r3.w, c0.x + temp3.w = float1(1); + // dp4 o0.x, r3, c119 + o.position.x = dot(temp3, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r3, c120 + o.position.y = dot(temp3, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r3, c121 + o.position.z = dot(temp3, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r3, c122 + o.position.w = dot(temp3, (ViewProjection._m03_m13_m23_m33)); + // add r0.xyz, -r3, c123 + temp0.xyz = -temp3.xyz + EyePosition.xyz; + // dp3 r1.w, r0, r0 + temp1.w = dot(temp0.xyz, temp0.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r4.xyz, r0, r1.w + temp4.xyz = temp0.xyz * temp1.www; + // mad r5.xyz, r0, r1.w, c6 + temp5.xyz = temp0.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r2.w, r2.w + temp5.x = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r5.x + temp2.w = temp2.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c17.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r2.w, c5 + temp5.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c15 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.w + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c16 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.w + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c3.y + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c3.y + temp6.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r7.xyz, r0, r1.w, c6[a0.x] + temp7.xyz = temp0.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r8 + temp5.w = dot(temp1.xyz, temp8.xyz); + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.w + temp4.w = temp4.w * temp6.w; + // slt r7.x, -r5.w, r5.w + temp7.x = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.w, r6.w, r7.x + temp6.w = temp6.w * temp7.x; + // pow r7.x, r5.w, c17.x + temp7.x = pow(temp5.w, Shininess.x); + // mul r5.w, r6.w, r7.x + temp5.w = temp6.w * temp7.x; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r5.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp6.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r0.xyz, -r3, c90 + temp0.xyz = -temp3.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r0, r0 + temp1.w = dot(temp0.xyz, temp0.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r0.xyz, r0, r1.w + temp0.xyz = temp0.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r7.xyz, r1.w, c89 + temp7.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r0.x, r1, r0 + temp0.x = dot(temp1.xyz, temp0.xyz); + // max r0.x, r0.x, c3.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r7, r0.x + temp0.xyz = temp7.xyz * temp0.xxx; + // mad r0.xyz, c11.x, r0, r5 + temp0.xyz = expr11.xxx * temp0.xyz + temp5.xyz; + // add r5.xyz, -r3, c93 + temp5.xyz = -temp3.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r5, r5 + temp1.w = dot(temp5.xyz, temp5.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r5.xyz, r5, r1.w + temp5.xyz = temp5.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r7.xyz, r1.w, c92 + temp7.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r5 + temp1.w = dot(temp1.xyz, temp5.xyz); + // max r1.w, r1.w, c3.y + temp1.w = max(temp1.w, float1(0)); + // mul r5.xyz, r7, r1.w + temp5.xyz = temp7.xyz * temp1.www; + // mad r0.xyz, c12.x, r5, r0 + temp0.xyz = expr12.xxx * temp5.xyz + temp0.xyz; + // add r5.xyz, -r3, c96 + temp5.xyz = -temp3.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r5, r5 + temp1.w = dot(temp5.xyz, temp5.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r5.xyz, r5, r1.w + temp5.xyz = temp5.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r7.xyz, r1.w, c95 + temp7.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.w, r1, r5 + temp1.w = dot(temp1.xyz, temp5.xyz); + // max r1.w, r1.w, c3.y + temp1.w = max(temp1.w, float1(0)); + // mul r5.xyz, r7, r1.w + temp5.xyz = temp7.xyz * temp1.www; + // mad r0.xyz, c13.x, r5, r0 + temp0.xyz = expr13.xxx * temp5.xyz + temp0.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c14 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c18 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r0.xyz, r0, c15, r5 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mul o1.xyz, r0, c0.w + o.texcoord1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r0.w, c1.x + o.texcoord1.w = temp0.w * OpacityOverride.x; + // mul r0.xyz, r6, c16 + temp0.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c0.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // dp4 r0.x, r3, c113 + temp0.x = dot(temp3, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r3, c114 + temp0.y = dot(temp3, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r3, c115 + temp0.z = dot(temp3, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r3, c116 + temp0.w = dot(temp3, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul o3.xy, r3, c3.z + o.texcoord = temp3 * float4(0.025, 0.025, 0.025, 0.025); + // mul r2.xy, r3.z, c117.zwzw + temp2.xy = temp3.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r3, c117, -r2 + temp2.xy = temp3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r2.xy, r3.yxzw, c19.wzzw + temp2.xy = temp3.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r2.xyxy, c19.xyyx + o.texcoord2.zw = temp2.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o5.xyz, r0, r1.w, c3.yyww + o.texcoord3.xyz = temp0.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // mov o8.xyz, r1 + o.texcoord6 = temp1; + // mov o9.xyz, r4 + o.texcoord7 = temp4; + // + + return o; +} + +// VS_Frozen_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Frozen_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 color : COLOR; +}; + +struct VS_Frozen_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; +}; + +VS_Frozen_Array_Shader_2_Output VS_Frozen_Array_Shader_2(VS_Frozen_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Frozen_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7, temp8; + // def c0, 1, -1, 1.5, 0.5 + // def c3, 0, 0, 0.025, -0.0015 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // dcl_texcoord7 o9.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r0.w, v1.y, c129[a0.y].w + temp0.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.w, c129[a0.x].w, v1.x, r0.w + temp0.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.w; + // mul r0.w, r0.w, v6.w + temp0.w = temp0.w * i.color.w; + // mul r2.xyz, c2, v6 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mad r3.xyz, r1, c0.z, r0 + temp3.xyz = temp1.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mov r3.w, c0.x + temp3.w = float1(1); + // dp4 o0.x, r3, c119 + o.position.x = dot(temp3, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r3, c120 + o.position.y = dot(temp3, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r3, c121 + o.position.z = dot(temp3, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r3, c122 + o.position.w = dot(temp3, (ViewProjection._m03_m13_m23_m33)); + // add r0.xyz, -r3, c123 + temp0.xyz = -temp3.xyz + EyePosition.xyz; + // dp3 r1.w, r0, r0 + temp1.w = dot(temp0.xyz, temp0.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r4.xyz, r0, r1.w + temp4.xyz = temp0.xyz * temp1.www; + // mad r5.xyz, r0, r1.w, c6 + temp5.xyz = temp0.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.w, r1, c6 + temp2.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r2.w, r2.w + temp5.x = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r5.x + temp2.w = temp2.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c17.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r2.w, c5 + temp5.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c15 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.w + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c16 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.w + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c3.y + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c3.y + temp6.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r7.xyz, r0, r1.w, c6[a0.x] + temp7.xyz = temp0.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r8 + temp5.w = dot(temp1.xyz, temp8.xyz); + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.w + temp4.w = temp4.w * temp6.w; + // slt r7.x, -r5.w, r5.w + temp7.x = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.w, r6.w, r7.x + temp6.w = temp6.w * temp7.x; + // pow r7.x, r5.w, c17.x + temp7.x = pow(temp5.w, Shininess.x); + // mul r5.w, r6.w, r7.x + temp5.w = temp6.w * temp7.x; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r5.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp6.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r0.xyz, -r3, c90 + temp0.xyz = -temp3.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r0, r0 + temp1.w = dot(temp0.xyz, temp0.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r0.xyz, r0, r1.w + temp0.xyz = temp0.xyz * temp1.www; + // add r1.w, r2.w, -c91.x + temp1.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r7.xyz, r1.w, c89 + temp7.xyz = temp1.www * PointLight[0].Color.xyz; + // dp3 r0.x, r1, r0 + temp0.x = dot(temp1.xyz, temp0.xyz); + // max r0.x, r0.x, c3.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r7, r0.x + temp0.xyz = temp7.xyz * temp0.xxx; + // mad r0.xyz, c11.x, r0, r5 + temp0.xyz = expr11.xxx * temp0.xyz + temp5.xyz; + // add r5.xyz, -r3, c93 + temp5.xyz = -temp3.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r5, r5 + temp1.w = dot(temp5.xyz, temp5.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r5.xyz, r5, r1.w + temp5.xyz = temp5.xyz * temp1.www; + // add r1.w, r2.w, -c94.x + temp1.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r7.xyz, r1.w, c92 + temp7.xyz = temp1.www * PointLight[1].Color.xyz; + // dp3 r1.w, r1, r5 + temp1.w = dot(temp1.xyz, temp5.xyz); + // max r1.w, r1.w, c3.y + temp1.w = max(temp1.w, float1(0)); + // mul r5.xyz, r7, r1.w + temp5.xyz = temp7.xyz * temp1.www; + // mad r0.xyz, c12.x, r5, r0 + temp0.xyz = expr12.xxx * temp5.xyz + temp0.xyz; + // add r5.xyz, -r3, c96 + temp5.xyz = -temp3.xyz + PointLight[2].Position.xyz; + // dp3 r1.w, r5, r5 + temp1.w = dot(temp5.xyz, temp5.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r2.w, r1.w + temp2.w = 1.0f / temp1.w; + // mul r5.xyz, r5, r1.w + temp5.xyz = temp5.xyz * temp1.www; + // add r1.w, r2.w, -c97.x + temp1.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r1.w, r1.w, -r2.w, c0.x + temp1.w = saturate(temp1.w * -temp2.w + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r7.xyz, r1.w, c95 + temp7.xyz = temp1.www * PointLight[2].Color.xyz; + // dp3 r1.w, r1, r5 + temp1.w = dot(temp1.xyz, temp5.xyz); + // max r1.w, r1.w, c3.y + temp1.w = max(temp1.w, float1(0)); + // mul r5.xyz, r7, r1.w + temp5.xyz = temp7.xyz * temp1.www; + // mad r0.xyz, c13.x, r5, r0 + temp0.xyz = expr13.xxx * temp5.xyz + temp0.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c14 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c18 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r0.xyz, r0, c15, r5 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mul o1.xyz, r0, c0.w + o.texcoord1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r0.w, c1.x + o.texcoord1.w = temp0.w * OpacityOverride.x; + // mul r0.xyz, r6, c16 + temp0.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c0.w + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // dp4 r0.x, r3, c113 + temp0.x = dot(temp3, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r3, c114 + temp0.y = dot(temp3, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r3, c115 + temp0.z = dot(temp3, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r3, c116 + temp0.w = dot(temp3, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul o3.xy, r3, c3.z + o.texcoord = temp3 * float4(0.025, 0.025, 0.025, 0.025); + // mul r2.xy, r3.z, c117.zwzw + temp2.xy = temp3.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r3, c117, -r2 + temp2.xy = temp3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r2.xy, r3.yxzw, c19.wzzw + temp2.xy = temp3.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r2.xyxy, c19.xyyx + o.texcoord2.zw = temp2.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o5.xyz, r0, r1.w, c3.yyww + o.texcoord3.xyz = temp0.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // mov o8.xyz, r1 + o.texcoord6 = temp1; + // mov o9.xyz, r4 + o.texcoord7 = temp4; + // + + return o; +} + +VertexShader VS_Frozen_Array[3] = { + compile vs_3_0 VS_Frozen_Array_Shader_0(), // 74 + compile vs_3_0 VS_Frozen_Array_Shader_1(), // 75 + compile vs_3_0 VS_Frozen_Array_Shader_2(), // 76 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord5.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[6] = { + compile ps_3_0 PS_Array_Shader_0(), // 77 + compile ps_3_0 PS_Array_Shader_1(), // 78 + compile ps_3_0 PS_Array_Shader_2(), // 79 + compile ps_3_0 PS_Array_Shader_3(), // 80 + compile ps_3_0 PS_Array_Shader_4(), // 81 + compile ps_3_0 PS_Array_Shader_5(), // 82 +}; +// PS_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Frozen_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Frozen_Array_Shader_0(PS_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 0.3, 0 + // def c1, 0.25, 0.4, 0.5, 0 + // dcl_texcoord1 v0 + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord7 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // texld r0, v1, s1 + temp0 = tex2D(FrozenNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // dp3 r0.w, v3, r0 + temp0.w = dot(i.texcoord7.xyz, temp0.xyz); + // add r0.w, r0.w, r0.w + temp0.w = temp0.w + temp0.w; + // mad r0.xyz, r0, -r0.w, v3 + temp0.xyz = temp0.xyz * -temp0.www + i.texcoord7.xyz; + // mov r0.xyz, -r0 + temp0.xyz = -temp0.xyz; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // mad r0.xyz, r0, c5, v0 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, c1 + temp0.xyz = temp0.xyz * float3(0.25, 0.4, 0.5); + // min r1.xyz, r0, c0.z + temp1.xyz = min(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r0.xyz, r1, r1 + temp0.xyz = temp1.xyz + temp1.xyz; + // texld r1, v2.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Frozen_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Frozen_Array_Shader_1(PS_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 0.3, 1 + // def c1, 0.25, 0.4, 0.5, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.w + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.zw + // dcl_texcoord7 v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // texld r0, v2, s1 + temp0 = tex2D(FrozenNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // dp3 r0.w, v4, r0 + temp0.w = dot(i.texcoord7.xyz, temp0.xyz); + // add r0.w, r0.w, r0.w + temp0.w = temp0.w + temp0.w; + // mad r0.xyz, r0, -r0.w, v4 + temp0.xyz = temp0.xyz * -temp0.www + i.texcoord7.xyz; + // mov r0.xyz, -r0 + temp0.xyz = -temp0.xyz; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // mad r0.xyz, r0, c5, v0 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, c1 + temp0.xyz = temp0.xyz * float3(0.25, 0.4, 0.5); + // min r1.xyz, r0, c0.z + temp1.xyz = min(temp0.xyz, float3(0.3, 0.3, 0.3)); + // mad r0.xyz, r1, c0.x, c0.y + temp0.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Frozen_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Frozen_Array_Shader_2(PS_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 0.3, 0 + // def c1, 0.25, 0.4, 0.5, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.w + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.zw + // dcl_texcoord7 v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // texld r0, v2, s1 + temp0 = tex2D(FrozenNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // dp3 r0.w, v4, r0 + temp0.w = dot(i.texcoord7.xyz, temp0.xyz); + // add r0.w, r0.w, r0.w + temp0.w = temp0.w + temp0.w; + // mad r0.xyz, r0, -r0.w, v4 + temp0.xyz = temp0.xyz * -temp0.www + i.texcoord7.xyz; + // mov r0.xyz, -r0 + temp0.xyz = -temp0.xyz; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // mad r0.xyz, r0, c5, v0 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, c1 + temp0.xyz = temp0.xyz * float3(0.25, 0.4, 0.5); + // min r1.xyz, r0, c0.z + temp1.xyz = min(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r0.xyz, r1, r1 + temp0.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Frozen_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Frozen_Array_Shader_3(PS_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 0.3, 0 + // def c1, 0.25, 0.4, 0.5, 0 + // dcl_texcoord1 v0 + // dcl_texcoord v1.xy + // dcl_texcoord2 v2.zw + // dcl_texcoord7 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // texld r0, v1, s1 + temp0 = tex2D(FrozenNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // dp3 r0.w, v3, r0 + temp0.w = dot(i.texcoord7.xyz, temp0.xyz); + // add r0.w, r0.w, r0.w + temp0.w = temp0.w + temp0.w; + // mad r0.xyz, r0, -r0.w, v3 + temp0.xyz = temp0.xyz * -temp0.www + i.texcoord7.xyz; + // mov r0.xyz, -r0 + temp0.xyz = -temp0.xyz; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // mad r0.xyz, r0, c5, v0 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, c1 + temp0.xyz = temp0.xyz * float3(0.25, 0.4, 0.5); + // min r1.xyz, r0, c0.z + temp1.xyz = min(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r0.xyz, r1, r1 + temp0.xyz = temp1.xyz + temp1.xyz; + // texld r1, v2.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Frozen_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Frozen_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Frozen_Array_Shader_4(PS_Frozen_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 0.3, 1 + // def c1, 0.25, 0.4, 0.5, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.w + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.zw + // dcl_texcoord7 v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // texld r0, v2, s1 + temp0 = tex2D(FrozenNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // dp3 r0.w, v4, r0 + temp0.w = dot(i.texcoord7.xyz, temp0.xyz); + // add r0.w, r0.w, r0.w + temp0.w = temp0.w + temp0.w; + // mad r0.xyz, r0, -r0.w, v4 + temp0.xyz = temp0.xyz * -temp0.www + i.texcoord7.xyz; + // mov r0.xyz, -r0 + temp0.xyz = -temp0.xyz; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // mad r0.xyz, r0, c5, v0 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, c1 + temp0.xyz = temp0.xyz * float3(0.25, 0.4, 0.5); + // min r1.xyz, r0, c0.z + temp1.xyz = min(temp0.xyz, float3(0.3, 0.3, 0.3)); + // mad r0.xyz, r1, c0.x, c0.y + temp0.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +// PS_Frozen_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Frozen_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord7 : TEXCOORD7; +}; + +float4 PS_Frozen_Array_Shader_5(PS_Frozen_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 0.3, 0 + // def c1, 0.25, 0.4, 0.5, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.w + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.zw + // dcl_texcoord7 v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // texld r0, v2, s1 + temp0 = tex2D(FrozenNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // dp3 r0.w, v4, r0 + temp0.w = dot(i.texcoord7.xyz, temp0.xyz); + // add r0.w, r0.w, r0.w + temp0.w = temp0.w + temp0.w; + // mad r0.xyz, r0, -r0.w, v4 + temp0.xyz = temp0.xyz * -temp0.www + i.texcoord7.xyz; + // mov r0.xyz, -r0 + temp0.xyz = -temp0.xyz; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // mad r0.xyz, r0, c5, v0 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, c1 + temp0.xyz = temp0.xyz * float3(0.25, 0.4, 0.5); + // min r1.xyz, r0, c0.z + temp1.xyz = min(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r0.xyz, r1, r1 + temp0.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s0 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.texcoord1.w; + // + + return out_color; +} + +PixelShader PS_Frozen_Array[6] = { + compile ps_3_0 PS_Frozen_Array_Shader_0(), // 83 + compile ps_3_0 PS_Frozen_Array_Shader_1(), // 84 + compile ps_3_0 PS_Frozen_Array_Shader_2(), // 85 + compile ps_3_0 PS_Frozen_Array_Shader_3(), // 86 + compile ps_3_0 PS_Frozen_Array_Shader_4(), // 87 + compile ps_3_0 PS_Frozen_Array_Shader_5(), // 88 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float3 texcoord6 : TEXCOORD6; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; + float4 color1 : COLOR1; + float4 texcoord1 : TEXCOORD1; + float3 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float3 texcoord7 : TEXCOORD7; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov oT6.xyz, r0 + o.texcoord6 = temp0; + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r2.z, r1, c126 + temp2.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r2.x, r1, c124 + temp2.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r2.y, r1, c125 + temp2.y = dot(temp1, (World._m01_m11_m21_m31)); + // add r1.xy, r2.yxzw, c16.wzzw + temp1.xy = temp2.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r1.xyxy, c16.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov r2.w, c0.x + temp2.w = float1(1); + // dp4 r0.w, r2, c116 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.x, r2, c113 + temp1.x = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r2, c114 + temp1.y = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r2, c115 + temp1.z = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mad oT3.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // add r1.xyz, -r2, c123 + temp1.xyz = -temp2.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r3.xyz, r1, r1.w, c6 + temp3.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // dp3 r3.y, r0, r4 + temp3.y = dot(temp0.xyz, temp4.xyz); + // dp3 r3.x, r0, c6 + temp3.x = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r3, r3 + temp3 = lit(temp3.x, temp3.y, temp3.w); + // mul r3.xzw, r3.z, c5.xyyz + temp3.xzw = temp3.zzz * DirectionalLight[0].Color.xyz; + // mul r3.xzw, r3, c13.xyyz + temp3.xzw = temp3.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r3.xzww, c0.z + o.texcoord5 = temp3.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.zw, c14.x + temp4.zw = Shininess.x; + // mov r3.xzw, c0.y + temp3.xzw = float3(0, 0, 0); + // mov r5, c0.yyyx + temp5 = float4(0, 0, 0, 1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r6.x, r5.w, r5.w + temp6.x = temp5.w + temp5.w; + // mova a0.x, r6.x + addr0.x = temp6.x; + // mad r6.xyz, r1, r1.w, c6[a0.x] + temp6.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.y, r0, r7 + temp4.y = dot(temp0.xyz, temp7.xyz); + // dp3 r4.x, r0, c6[a0.x] + temp4.x = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r4 + temp6 = lit(temp4.x, temp4.y, temp4.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r3.xzw, c5[a0.x].xyyz, r6.y, r3 + temp3.xzw = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp3.xzw; + // add r5.w, r5.w, c0.x + temp5.w = temp5.w + float1(1); + // endrep + } + // mul r0.xyz, r5, c13 + temp0.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r0, c0.z + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mov r0.xyz, c4 + temp0.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c11 + temp4.xyz = ColorAmbient.xyz; + // mad r0.xyz, r0, r4, c15 + temp0.xyz = temp0.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r0.xyz, r3.xzww, c12, r0 + temp0.xyz = temp3.xzw * ColorDiffuse.xyz + temp0.xyz; + // mul r3.xzw, v3.xyyz, c2.xyyz + temp3.xzw = i.color.xyz * TintColor.xyz; + // mul r0.xyz, r0, r3.xzww + temp0.xyz = temp0.xyz * temp3.xzw; + // mul oT1.xyz, r0, c0.z + o.texcoord1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mul r0.xyz, r3.y, c5 + temp0.xyz = temp3.yyy * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz; + // mul r0.xyz, r3.xzww, r0 + temp0.xyz = temp3.xzw * temp0.xyz; + // mul oT4.xyz, r0, c0.z + o.texcoord4 = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xy, r2.z, c117.zwzw + temp0.xy = temp2.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r2, c117, -r0 + temp0.xy = temp2.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add oT2.xy, r0, c118 + o.texcoord2.xy = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov oT3.w, r0.w + o.texcoord3.w = temp0.w; + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // mul r0.xyz, r1, r1.w + temp0.xyz = temp1.xyz * temp1.www; + // mov oT7.xyz, r0 + o.texcoord7 = temp0; + // mul oT1.w, v3.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float3 texcoord6 : TEXCOORD6; + float4 texcoord1 : TEXCOORD1; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord7 : TEXCOORD7; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r0.yzw, r1.w, c128[a0.x].xxyz + temp0.yzw = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r1.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp1.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r1.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r1.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp0.yzw; + // add r1.xyz, r0.yzww, c129[a0.x] + temp1.xyz = temp0.yzw + WorldBones[1 + addr0.x].xyz; + // add r0.yz, r1.xyxw, c16.xwzw + temp0.yz = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r0.xyyz, c16.xyyx + o.texcoord2.zw = temp0.yz * Shroud.ScaleUV_OffsetUV.yx; + // mul r0.yz, r1.z, c117.xzww + temp0.yz = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.yz, r1.xxyw, c117.xxyw, -r0 + temp0.yz = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.yz; + // add oT2.xy, r0.yzzw, c118 + o.texcoord2.xy = temp0.yz + Cloud.CurrentOffsetUV.xy; + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 r0.y, r1, c116 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r2.x, r1, c113 + temp2.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r1, c114 + temp2.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r1, c115 + temp2.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mad oT3.xyz, r2, r0.z, c0.xxyw + o.texcoord3.xyz = temp2.xyz * temp0.zzz + float3(0, 0, -0.0015); + // mov oT3.w, r0.y + o.texcoord3.w = temp0.y; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r0.yzw, r2.w, c128[a0.x].xxyz + temp0.yzw = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r0.yzw, c128[a0.x].w, r2.xxyz, -r0 + temp0.yzw = WorldBones[0 + addr0.x].www * temp2.xyz + -temp0.yzw; + // mad r0.yzw, c128[a0.x].xyzx, r2.xzxy, r0 + temp0.yzw = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp0.yzw; + // mad r0.yzw, c128[a0.x].xzxy, -r2.xyzx, r0 + temp0.yzw = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp0.yzw; + // mov oT6.xyz, r0.yzww + o.texcoord6 = temp0.yzww; + // add r1.xyz, -r1, c123 + temp1.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r2.zw, c14.x + temp2.zw = Shininess.x; + // mov r3.xyz, c0.x + temp3.xyz = float3(0, 0, 0); + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r3.w, c3.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r5.xyz, r1, r1.w, c6[a0.x] + temp5.xyz = temp1.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.y, r0.yzww, r6 + temp2.y = dot(temp0.yzw, temp6.xyz); + // dp3 r2.x, r0.yzww, c6[a0.x] + temp2.x = dot(temp0.yzw, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r5, r2 + temp5 = lit(temp2.x, temp2.y, temp2.w); + // mad r4.xyz, c5[a0.x], r5.z, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.zzz + temp4.xyz; + // mad r3.xyz, c5[a0.x], r5.y, r3 + temp3.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.yyy + temp3.xyz; + // add r3.w, r3.w, c3.x + temp3.w = temp3.w + float1(1); + // endrep + } + // mul r2.xyz, r4, c13 + temp2.xyz = temp4.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r2, c3.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c11 + temp4.xyz = ColorAmbient.xyz; + // mad r2.xyz, r2, r4, c15 + temp2.xyz = temp2.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r2.xyz, r3, c12, r2 + temp2.xyz = temp3.xyz * ColorDiffuse.xyz + temp2.xyz; + // mul r3.xyz, v4, c2 + temp3.xyz = i.color.xyz * TintColor.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul oT1.xyz, r2, c3.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp3 r2.x, r0.yzww, c6 + temp2.x = dot(temp0.yzw, DirectionalLight[0].Direction.xyz); + // mad r4.xyz, r1, r1.w, c6 + temp4.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r2.y, r0.yzww, r5 + temp2.y = dot(temp0.yzw, temp5.xyz); + // mov r2.zw, c14.x + temp2.zw = Shininess.x; + // lit r2, r2 + temp2 = lit(temp2.x, temp2.y, temp2.w); + // mul r0.yzw, r2.y, c5.xxyz + temp0.yzw = temp2.yyy * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c12.xxyz + temp0.yzw = temp0.yzw * ColorDiffuse.xyz; + // mul r0.yzw, r3.xxyz, r0 + temp0.yzw = temp3.xyz * temp0.yzw; + // mul oT4.xyz, r0.yzww, c3.z + o.texcoord4 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.yzw, r2.z, c5.xxyz + temp0.yzw = temp2.zzz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0, c13.xxyz + temp0.yzw = temp0.yzw * ColorSpecular.xyz; + // mul oT5.xyz, r0.yzww, c3.z + o.texcoord5 = temp0.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0.xyz, r1, r1.w + temp0.xyz = temp1.xyz * temp1.www; + // mov oT7.xyz, r0 + o.texcoord7 = temp0; + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float3 texcoord6 : TEXCOORD6; + float4 texcoord2 : TEXCOORD2; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 position : POSITION; + float3 texcoord7 : TEXCOORD7; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float2 addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v7.w + temp0.x = temp0.x * i.color.w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mov oT6.xyz, r1 + o.texcoord6 = temp1; + // add r2.xy, r0.yxzw, c16.wzzw + temp2.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r2.xyxy, c16.xyyx + o.texcoord2.zw = temp2.xy * Shroud.ScaleUV_OffsetUV.yx; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add oT2.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v7, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r5.xyz, r2, r1.w, c6 + temp5.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.y, r1, r6 + temp3.y = dot(temp1.xyz, temp6.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r3, r3 + temp3 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyz, r3.z, c5 + temp1.xyz = temp3.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c13 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r1, c3.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r3.x, r0, c113 + temp3.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r3.z, r0, c114 + temp3.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r3.w, r0, c115 + temp3.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mad oT3.xyz, r3.xzww, r1.y, c0.xxyw + o.texcoord3.xyz = temp3.xzw * temp1.yyy + float3(0, 0, -0.0015); + // mul r3.xyz, r3.y, c5 + temp3.xyz = temp3.yyy * DirectionalLight[0].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz; + // mul r3.xyz, r4, r3 + temp3.xyz = temp4.xyz * temp3.xyz; + // mul oT4.xyz, r3, c3.z + o.texcoord4 = temp3 * float4(0.5, 0.5, 0.5, 0.5); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r0.xyz, r2, r1.w + temp0.xyz = temp2.xyz * temp1.www; + // mov oT7.xyz, r0 + o.texcoord7 = temp0; + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 93 + compile vs_2_0 VS_M_Array_Shader_1(), // 94 + compile vs_2_0 VS_M_Array_Shader_2(), // 95 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // add r1.xyz, r1, v1 + temp1.xyz = temp1.xyz + i.color1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov r1.xy, t2.wzyx + temp1.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ShroudTextureSampler, temp1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 1, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, t1 + temp1.xyz = temp1.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mov r1.xy, t2.wzyx + temp1.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ShroudTextureSampler, temp1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, t1 + temp1.xyz = temp1.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mov r1.xy, t2.wzyx + temp1.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ShroudTextureSampler, temp1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // add r1.xyz, r1, v1 + temp1.xyz = temp1.xyz + i.color1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov r1.xy, t2.wzyx + temp1.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ShroudTextureSampler, temp1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 1, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, t1 + temp1.xyz = temp1.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mov r1.xy, t2.wzyx + temp1.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ShroudTextureSampler, temp1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // add r1.xyz, r1, t1 + temp1.xyz = temp1.xyz + i.texcoord1.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // mov r1.xy, t2.wzyx + temp1.xy = i.texcoord2.wz; + // texld r1, r1, s1 + temp1 = tex2D(ShroudTextureSampler, temp1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[6] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 96 + compile ps_2_0 PS_M_Array_Shader_1(), // 97 + compile ps_2_0 PS_M_Array_Shader_2(), // 98 + compile ps_2_0 PS_M_Array_Shader_3(), // 99 + compile ps_2_0 PS_M_Array_Shader_4(), // 100 + compile ps_2_0 PS_M_Array_Shader_5(), // 101 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 108 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 109 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 110 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t1.x + // add r0, v0.x, c0.x + temp0 = i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 111 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 112 +}; +// _CreateShadowMap_Expression33 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression33() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c0.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt c0.x, r1.x, r0.x + expr0.x = temp1.x < temp0.x; + return expr0; +} + +// _CreateShadowMap_Expression34 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression34() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_L_Expression35 Expression_2_0 Has PRES False +float _Default_L_Expression35() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_L_Expression36 Expression_2_0 Has PRES False +float _Default_L_Expression36() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression37 Expression_2_0 Has PRES False +float _Default_M_Expression37() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_M_Expression38 Expression_2_0 Has PRES False +float _Default_M_Expression38() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression39 Expression_2_0 Has PRES False +float Default_Expression39() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression40 Expression_2_0 Has PRES False +float Default_Expression40() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression41 Expression_2_0 Has PRES False +float Default_Expression41() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression42 Expression_2_0 Has PRES False +float Default_Expression42() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression42()]; // 89 + PixelShader = PS_Array[Default_Expression41()]; // 90 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + AlphaFunc = 7; + AlphaRef = 96; + } + pass p1 + { + VertexShader = VS_Frozen_Array[Default_Expression40()]; // 91 + PixelShader = PS_Frozen_Array[Default_Expression39()]; // 92 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression38()]; // 103 + PixelShader = PS_M_Array[_Default_M_Expression37()]; // 104 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression36()]; // 106 + PixelShader = PS_M_Array[_Default_L_Expression35()]; // 107 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression34()]; // 114 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression33()]; // 115 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/infantryradiation.fx b/infantryradiation.fx new file mode 100644 index 0000000..abb2af9 --- /dev/null +++ b/infantryradiation.fx @@ -0,0 +1,3656 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(vs_2_0, c2) : register(vs_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient : register(vs_2_0, c11) : register(vs_3_0, c15) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c12) : register(vs_3_0, c16) = { 1, 1, 1 }; +float3 ColorSpecular : register(vs_2_0, c13) : register(vs_3_0, c17) ; +float Shininess : register(vs_2_0, c14) : register(vs_3_0, c18) = { 1 }; +float3 ColorEmissive : register(vs_2_0, c15) : register(vs_3_0, c19) ; +texture Texture_0 ; // 28 +sampler2D Texture_0Sampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 30 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c16) : register(vs_3_0, c20) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 39 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 46 +sampler2D CloudTextureSampler : register(ps_2_0, s3) : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 50 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + // mul c14.x, c1.x, (0.15) + expr14.x = Time.x * (0.15); + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7, temp8; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // def c21, 1.1, 4, 0.05, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r4.xyz, r3, r0.w + temp4.xyz = temp3.xyz * temp0.www; + // mad r5.xyz, r3, r0.w, c6 + temp5.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r6 + temp3.w = dot(temp0.xyz, temp6.xyz); + // slt r4.w, -r2.w, r2.w + temp4.w = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.w + temp2.w = temp2.w * temp4.w; + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.w, r4.w, r5.x + temp4.w = temp4.w * temp5.x; + // pow r5.x, r3.w, c18.x + temp5.x = pow(temp3.w, Shininess.x); + // mul r3.w, r4.w, r5.x + temp3.w = temp4.w * temp5.x; + // mul r5.xyz, r2.w, c5 + temp5.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r3.w, c5 + temp6.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c16 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c17 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c0.y + temp6.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r7.xyz, r3, r0.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r8 + temp4.w = dot(temp0.xyz, temp8.xyz); + // slt r5.w, -r3.w, r3.w + temp5.w = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.w + temp3.w = temp3.w * temp5.w; + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.w, r5.w, r6.w + temp5.w = temp5.w * temp6.w; + // pow r6.w, r4.w, c18.x + temp6.w = pow(temp4.w, Shininess.x); + // mul r4.w, r5.w, r6.w + temp4.w = temp5.w * temp6.w; + // mad r5.xyz, c5[a0.x], r3.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r4.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp6.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r3.xyz, -r1, c90 + temp3.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c89 + temp7.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r7, r0.w + temp3.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r1, c93 + temp5.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r5, r5 + temp0.w = dot(temp5.xyz, temp5.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r5.xyz, r5, r0.w + temp5.xyz = temp5.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c92 + temp7.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r5 + temp0.w = dot(temp0.xyz, temp5.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r5.xyz, r7, r0.w + temp5.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r1, c96 + temp5.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r5, r5 + temp0.w = dot(temp5.xyz, temp5.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r5.xyz, r5, r0.w + temp5.xyz = temp5.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r7.xyz, r0.w, c95 + temp7.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.w, r0, r5 + temp0.w = dot(temp0.xyz, temp5.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r5.xyz, r7, r0.w + temp5.xyz = temp7.xyz * temp0.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c15 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c19 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c16, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c0.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, c1.x, v3.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r2.xyz, r6, c17 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r1, c113 + temp2.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r1, c114 + temp2.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r1, c115 + temp2.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r1.z, c117.zwzw + temp3.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r1, c117, -r3 + temp3.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r3.xy, r1.yxzw, c20.wzzw + temp3.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r3.xyxy, c20.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.x, r4, r0 + temp0.x = dot(temp4.xyz, temp0.xyz); + // add r0.x, -r0.x, c0.x + temp0.x = -temp0.x + float1(1); + // pow r1.z, r0.x, c21.x + temp1.z = pow(temp0.x, float1(1.1)); + // mul o8.xyz, r1.z, c21.y + o.texcoord6 = temp1.z * float4(4, 4, 4, 4); + // mad r0.xy, r1, c21.z, v2 + temp0.xy = temp1.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add o3.xy, r0, c14.x + o.texcoord = temp0 + expr14.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o5.xyz, r2, r1.w, c3.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + // mul c14.x, c1.x, (0.15) + expr14.x = Time.x * (0.15); + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7, temp8; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, 1.1, 4, 0.05 + // def c21, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r1.w, v4.w, c129[a0.x].w + temp1.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v4 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r5.xyz, r3, r2.w, c6 + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c18.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c16 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c0.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c17 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c0.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c3.x + temp6.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r7.xyz, r3, r2.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r8 + temp5.w = dot(temp1.xyz, temp8.xyz); + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.w + temp4.w = temp4.w * temp6.w; + // slt r7.x, -r5.w, r5.w + temp7.x = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.w, r6.w, r7.x + temp6.w = temp6.w * temp7.x; + // pow r7.x, r5.w, c18.x + temp7.x = pow(temp5.w, Shininess.x); + // mul r5.w, r6.w, r7.x + temp5.w = temp6.w * temp7.x; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r5.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp6.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c89 + temp7.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r7, r2.w + temp3.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r0, c93 + temp5.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c92 + temp7.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r0, c96 + temp5.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c95 + temp7.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c15 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c19 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c16, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c0.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r2.xyz, r6, c17 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c0.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r0.z, c117.zwzw + temp3.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r0, c117, -r3 + temp3.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r3.xy, r0.yxzw, c20.wzzw + temp3.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r3.xyxy, c20.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.z, r4, r1 + temp0.z = dot(temp4.xyz, temp1.xyz); + // add r0.z, -r0.z, c0.x + temp0.z = -temp0.z + float1(1); + // pow r1.x, r0.z, c3.y + temp1.x = pow(temp0.z, float1(1.1)); + // mul o8.xyz, r1.x, c3.z + o.texcoord6 = temp1.x * float4(4, 4, 4, 4); + // mad r0.xy, r0, c3.w, v3 + temp0.xy = temp0.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add o3.xy, r0, c14.x + o.texcoord = temp0 + expr14.x; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mad o5.xyz, r2, r1.w, c21.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + // mul c14.x, c1.x, (0.15) + expr14.x = Time.x * (0.15); + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7, temp8; + // def c0, 0, 1.1, 4, 0.05 + // def c3, 1, -1, 0.5, 0 + // def c21, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // dcl_texcoord6 o8.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // mul r1.w, r1.w, v7.w + temp1.w = temp1.w * i.color.w; + // mul r2.xyz, c2, v7 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mul r4.xyz, r3, r2.w + temp4.xyz = temp3.xyz * temp2.www; + // mad r5.xyz, r3, r2.w, c6 + temp5.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r6.xyz, r5 + temp6.xyz = normalize(temp5.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.w, r1, r6 + temp4.w = dot(temp1.xyz, temp6.xyz); + // slt r5.x, -r3.w, r3.w + temp5.x = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.x + temp3.w = temp3.w * temp5.x; + // slt r5.y, -r4.w, r4.w + temp5.y = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.x, r5.x, r5.y + temp5.x = temp5.x * temp5.y; + // pow r5.y, r4.w, c18.x + temp5.y = pow(temp4.w, Shininess.x); + // mul r4.w, r5.x, r5.y + temp4.w = temp5.x * temp5.y; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r6.xyz, r4.w, c5 + temp6.xyz = temp4.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r5, c16 + temp5.xyz = temp5.xyz * ColorDiffuse.xyz; + // mul r5.xyz, r2, r5 + temp5.xyz = temp2.xyz * temp5.xyz; + // mul o6.xyz, r5, c3.z + o.texcoord4 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mul r5.xyz, r6, c17 + temp5.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o7.xyz, r5, c3.z + o.texcoord5 = temp5 * float4(0.5, 0.5, 0.5, 0.5); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r6.xyz, c0.x + temp6.xyz = float3(0, 0, 0); + // mov r3.w, c3.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r7.xyz, r3, r2.w, c6[a0.x] + temp7.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r8.xyz, r7 + temp8.xyz = normalize(temp7.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r8 + temp5.w = dot(temp1.xyz, temp8.xyz); + // slt r6.w, -r4.w, r4.w + temp6.w = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.w + temp4.w = temp4.w * temp6.w; + // slt r7.x, -r5.w, r5.w + temp7.x = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.w, r6.w, r7.x + temp6.w = temp6.w * temp7.x; + // pow r7.x, r5.w, c18.x + temp7.x = pow(temp5.w, Shininess.x); + // mul r5.w, r6.w, r7.x + temp5.w = temp6.w * temp7.x; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // mad r6.xyz, c5[a0.x], r5.w, r6 + temp6.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp6.xyz; + // add r3.w, r3.w, c3.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c3.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c89 + temp7.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c0.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r7, r2.w + temp3.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r5 + temp3.xyz = expr11.xxx * temp3.xyz + temp5.xyz; + // add r5.xyz, -r0, c93 + temp5.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c3.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c92 + temp7.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c0.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c12.x, r5, r3 + temp3.xyz = expr12.xxx * temp5.xyz + temp3.xyz; + // add r5.xyz, -r0, c96 + temp5.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c3.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r7.xyz, r2.w, c95 + temp7.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r2.w, r1, r5 + temp2.w = dot(temp1.xyz, temp5.xyz); + // max r2.w, r2.w, c0.x + temp2.w = max(temp2.w, float1(0)); + // mul r5.xyz, r7, r2.w + temp5.xyz = temp7.xyz * temp2.www; + // mad r3.xyz, c13.x, r5, r3 + temp3.xyz = expr13.xxx * temp5.xyz + temp3.xyz; + // mov r5.xyz, c4 + temp5.xyz = AmbientLightColor.xyz; + // mov r7.xyz, c15 + temp7.xyz = ColorAmbient.xyz; + // mad r5.xyz, r5, r7, c19 + temp5.xyz = temp5.xyz * temp7.xyz + ColorEmissive.xyz; + // mad r3.xyz, r3, c16, r5 + temp3.xyz = temp3.xyz * ColorDiffuse.xyz + temp5.xyz; + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // mul o1.xyz, r2, c3.z + o.texcoord1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r2.xyz, r6, c17 + temp2.xyz = temp6.xyz * ColorSpecular.xyz; + // mul o2.xyz, r2, c3.z + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r3.xy, r0.z, c117.zwzw + temp3.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r3.xy, r0, c117, -r3 + temp3.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp3.xy; + // add o4.xy, r3, c118 + o.texcoord2.xy = temp3.xy + Cloud.CurrentOffsetUV.xy; + // add r3.xy, r0.yxzw, c20.wzzw + temp3.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r3.xyxy, c20.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r0.z, r4, r1 + temp0.z = dot(temp4.xyz, temp1.xyz); + // add r0.z, -r0.z, c3.x + temp0.z = -temp0.z + float1(1); + // pow r1.x, r0.z, c0.y + temp1.x = pow(temp0.z, float1(1.1)); + // mul o8.xyz, r1.x, c0.z + o.texcoord6 = temp1.x * float4(4, 4, 4, 4); + // mad r0.xy, r0, c0.w, v6 + temp0.xy = temp0.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add o3.xy, r0, c14.x + o.texcoord = temp0 + expr14.x; + // mov o2.w, c3.x + o.color1.w = float1(1); + // mad o5.xyz, r2, r1.w, c21.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 55 + compile vs_3_0 VS_Array_Shader_1(), // 56 + compile vs_3_0 VS_Array_Shader_2(), // 57 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // add r0.xyz, r0, v6 + temp0.xyz = temp0.xyz + i.texcoord6.xyz; + // texld r1, v3, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, v4, r2, r0 + temp0.xyz = i.texcoord4.xyz * temp2.xyz + temp0.xyz; + // mov r1.xyz, v5 + temp1.xyz = i.texcoord5.xyz; + // mad r1.xyz, r1, r2, v1 + temp1.xyz = temp1.xyz * temp2.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // add r0.xyz, r0, v6 + temp0.xyz = temp0.xyz + i.texcoord6.xyz; + // texld r1, v3, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, v4, r2, r0 + temp0.xyz = i.texcoord4.xyz * temp2.xyz + temp0.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // mad r1.xyz, v5, r2, r1 + temp1.xyz = i.texcoord5.xyz * temp2.xyz + temp1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // add r0.xyz, r0, v6 + temp0.xyz = temp0.xyz + i.texcoord6.xyz; + // texld r1, v3, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, v4, r2, r0 + temp0.xyz = i.texcoord4.xyz * temp2.xyz + temp0.xyz; + // mov r1.xyz, v1 + temp1.xyz = i.color1.xyz; + // mad r1.xyz, v5, r2, r1 + temp1.xyz = i.texcoord5.xyz * temp2.xyz + temp1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // add r1.xyz, r1, v7 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // add r1.xyz, r1, v7 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // add r1.xyz, r1, v7 + temp1.xyz = temp1.xyz + i.texcoord6.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[6] = { + compile ps_3_0 PS_Array_Shader_0(), // 58 + compile ps_3_0 PS_Array_Shader_1(), // 59 + compile ps_3_0 PS_Array_Shader_2(), // 60 + compile ps_3_0 PS_Array_Shader_3(), // 61 + compile ps_3_0 PS_Array_Shader_4(), // 62 + compile ps_3_0 PS_Array_Shader_5(), // 63 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float2 texcoord : TEXCOORD; + float4 color1 : COLOR1; + float4 texcoord1 : TEXCOORD1; + float3 texcoord5 : TEXCOORD5; + float3 texcoord4 : TEXCOORD4; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + { + // Expression_2_1 + // mul c17.x, c0.x, (0.15) + expr17.x = Time.x * (0.15); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // def c18, 1.1, 4, 0.05, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // mad r0.xy, r1, c18.z, v2 + temp0.xy = temp1.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add oT0.xy, r0, c17.x + o.texcoord = temp0 + expr17.x; + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r2, r0.w + temp3.xyz = temp2.xyz * temp0.www; + // dp3 r2.w, r3, r0 + temp2.w = dot(temp3.xyz, temp0.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0, r7 + temp3.y = dot(temp0.xyz, temp7.xyz); + // dp3 r3.x, r0, c6[a0.x] + temp3.x = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v3, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r0, c6 + temp3.x = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r0.w, c6 + temp2.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0, r5 + temp3.y = dot(temp0.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r0, r3 + temp0 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.xzw, r0.z, c5.xyyz + temp0.xzw = temp0.zzz * DirectionalLight[0].Color.xyz; + // mul r0.xzw, r0, c13.xyyz + temp0.xzw = temp0.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r0.xzww, c0.z + o.texcoord5 = temp0.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xyz, r0.y, c5 + temp0.xyz = temp0.yyy * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz; + // mul r0.xyz, r4, r0 + temp0.xyz = temp4.xyz * temp0.xyz; + // mul oT4.xyz, r0, c0.z + o.texcoord4 = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add oT2.xy, r0, c118 + o.texcoord2.xy = temp0.xy + Cloud.CurrentOffsetUV.xy; + // add r0.x, -r2.w, c0.x + temp0.x = -temp2.w + float1(1); + // pow r2.x, r0.x, c18.x + temp2.x = pow(temp0.x, float1(1.1)); + // mul oT6.xyz, r2.x, c18.y + o.texcoord6 = temp2.x * float4(4, 4, 4, 4); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT3.xyz, r0.yzww, r2.x, c3.xxyw + o.texcoord3.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // add r0.yz, r1.xyxw, c16.xwzw + temp0.yz = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r0.xyyz, c16.xyyx + o.texcoord2.zw = temp0.yz * Shroud.ScaleUV_OffsetUV.yx; + // mov oT3.w, r0.x + o.texcoord3.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mul oT1.w, v3.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 position : POSITION; + float4 color1 : COLOR1; + float3 texcoord5 : TEXCOORD5; + float3 texcoord4 : TEXCOORD4; + float4 texcoord3 : TEXCOORD3; + float3 texcoord6 : TEXCOORD6; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + { + // Expression_2_1 + // mul c17.x, c0.x, (0.15) + expr17.x = Time.x * (0.15); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float addr0; + float3 temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, 1.1, 4, 0.05 + // def c18, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mov r0.w, c0.x + temp0.w = float1(1); + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r0.xyz, r1, c129[a0.x] + temp0.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r1.xy, r0, c3.w, v3 + temp1.xy = temp0.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add oT0.xy, r1, c17.x + o.texcoord = temp1 + expr17.x; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v4, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xzw, r1.z, c5.xyyz + temp1.xzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xzw, r1, c13.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r1.xzww, c0.z + o.texcoord5 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, c5 + temp1.xyz = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r4, r1 + temp1.xyz = temp4.xyz * temp1.xyz; + // mul oT4.xyz, r1, c0.z + o.texcoord4 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r0.z, r1.x + temp0.z = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r0.z, c18.xxyw + o.texcoord3.xyz = temp1.yzw * temp0.zzz + float3(0, 0, -0.0015); + // add r0.xy, r0.yxzw, c16.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r0.xyxy, c16.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // add r0.x, -r2.w, c0.x + temp0.x = -temp2.w + float1(1); + // pow r1.x, r0.x, c3.y + temp1.x = pow(temp0.x, float1(1.1)); + // mul oT6.xyz, r1.x, c3.z + o.texcoord6 = temp1.x * float4(4, 4, 4, 4); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 color1 : COLOR1; + float3 texcoord5 : TEXCOORD5; + float3 texcoord4 : TEXCOORD4; + float4 texcoord2 : TEXCOORD2; + float3 texcoord6 : TEXCOORD6; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + { + // Expression_2_1 + // mul c17.x, c0.x, (0.15) + expr17.x = Time.x * (0.15); + } + + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 addr0; + float3 temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, 1.1, 4, 0.05 + // def c18, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v7.w + temp0.x = temp0.x * i.color.w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mad r2.xy, r0, c3.w, v6 + temp2.xy = temp0.xy * float2(0.05, 0.05) + i.texcoord.xy; + // add oT0.xy, r2, c17.x + o.texcoord = temp2 + expr17.x; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul r3.xyz, r2, r1.w + temp3.xyz = temp2.xyz * temp1.www; + // dp3 r2.w, r3, r1 + temp2.w = dot(temp3.xyz, temp1.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r4.w, c0.x + temp4.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r5.w, r4.w, r4.w + temp5.w = temp4.w + temp4.w; + // mova a0.x, r5.w + addr0.x = temp5.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r4.w, r4.w, c0.x + temp4.w = temp4.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v7, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xzw, r1.z, c5.xyyz + temp1.xzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xzw, r1, c13.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r1.xzww, c0.z + o.texcoord5 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.y, c5 + temp1.xyz = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz; + // mul r1.xyz, r4, r1 + temp1.xyz = temp4.xyz * temp1.xyz; + // mul oT4.xyz, r1, c0.z + o.texcoord4 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // add r1.x, -r2.w, c0.x + temp1.x = -temp2.w + float1(1); + // pow r2.x, r1.x, c3.y + temp2.x = pow(temp1.x, float1(1.1)); + // mul oT6.xyz, r2.x, c3.z + o.texcoord6 = temp2.x * float4(4, 4, 4, 4); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.x + temp2.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r2.x, c18.xxyw + o.texcoord3.xyz = temp1.yzw * temp2.xxx + float3(0, 0, -0.0015); + // add r1.yz, r0.xyxw, c16.xwzw + temp1.yz = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r1.xyyz, c16.xyyx + o.texcoord2.zw = temp1.yz * Shroud.ScaleUV_OffsetUV.yx; + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 67 + compile vs_2_0 VS_M_Array_Shader_1(), // 68 + compile vs_2_0 VS_M_Array_Shader_2(), // 69 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t5 + temp3.xyz = i.texcoord5.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2, -1, 1, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t5 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[6] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 70 + compile ps_2_0 PS_M_Array_Shader_1(), // 71 + compile ps_2_0 PS_M_Array_Shader_2(), // 72 + compile ps_2_0 PS_M_Array_Shader_3(), // 73 + compile ps_2_0 PS_M_Array_Shader_4(), // 74 + compile ps_2_0 PS_M_Array_Shader_5(), // 75 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 82 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 83 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 84 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mad r0, v0.x, r0.w, c0.x + temp0 = i.color.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 85 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 86 +}; +// _CreateShadowMap_Expression24 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression24() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c0.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt c0.x, r1.x, r0.x + expr0.x = temp1.x < temp0.x; + return expr0; +} + +// _CreateShadowMap_Expression25 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_L_Expression26 Expression_2_0 Has PRES False +float _Default_L_Expression26() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_L_Expression27 Expression_2_0 Has PRES False +float _Default_L_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression28 Expression_2_0 Has PRES False +float _Default_M_Expression28() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_M_Expression29 Expression_2_0 Has PRES False +float _Default_M_Expression29() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression30 Expression_2_0 Has PRES False +float Default_Expression30() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression31 Expression_2_0 Has PRES False +float Default_Expression31() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression31()]; // 65 + PixelShader = PS_Array[Default_Expression30()]; // 66 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression29()]; // 77 + PixelShader = PS_M_Array[_Default_M_Expression28()]; // 78 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression27()]; // 80 + PixelShader = PS_M_Array[_Default_L_Expression26()]; // 81 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression25()]; // 88 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression24()]; // 89 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/laser.fx b/laser.fx new file mode 100644 index 0000000..412b987 --- /dev/null +++ b/laser.fx @@ -0,0 +1,325 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +column_major float4x4 World : World : register(vs_2_0, c15); +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +texture Texture1 ; // 2 +sampler2D Texture1Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 1; +}; +texture Texture2 ; // 7 +sampler2D Texture2Sampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 1; +}; +float3 ColorEmissive : register(ps_2_0, c11) = { 1, 1, 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c17) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 16 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 20 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +// Default_M_PixelShader1 Pixel_2_0 Has PRES False +struct Default_M_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float color : COLOR; +}; + +float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float4 temp3; + // def c0, -0.75, 0, 0, 0 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture1Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture2Sampler, i.texcoord1.xy); + // add r0.x, r0.x, c0.x + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r3.w, r0.x, c0.y + temp3.w = max(temp0.x, float1(0)); + // add r0.x, r3.w, r3.w + temp0.x = temp3.w + temp3.w; + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mul r0.yzw, r1.wzyx, c11.wzyx + temp0.yzw = temp1.zyx * ColorEmissive.zyx; + // mul r1.w, r1.w, v0.x + temp1.w = temp1.w * i.color.x; + // mul r1.xyz, r0.x, r0.wzyx + temp1.xyz = temp0.xxx * temp0.wzy; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_M_VertexShader2 Vertex_2_0 Has PRES False +struct Default_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct Default_M_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord2 : TEXCOORD2; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i) +{ + Default_M_VertexShader2_Output o; + float4 temp0; + float2 temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c15 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c16 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r0.xy, r1, c17.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c17 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1.xy, v2 + o.texcoord1 = i.texcoord1; + // mov oD0.x, v3.x + o.color = i.color.x; + // + + return o; +} + +// Default_PixelShader3 Pixel_2_0 Has PRES False +struct Default_PixelShader3_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float color : COLOR; +}; + +float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float4 temp3; + // def c0, 2.2, -0.75, 0, 0 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture1Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture2Sampler, i.texcoord1.xy); + // add r0.x, r0.x, c0.y + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r3.w, r0.x, c0.z + temp3.w = max(temp0.x, float1(0)); + // add r0.x, r3.w, r3.w + temp0.x = temp3.w + temp3.w; + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mul r0.yzw, r1.wzyx, c11.wzyx + temp0.yzw = temp1.zyx * ColorEmissive.zyx; + // mul r1.w, r1.w, v0.x + temp1.w = temp1.w * i.color.x; + // log r2.x, r0.w + temp2.x = log2(temp0.w); + // log r2.y, r0.z + temp2.y = log2(temp0.z); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // mul r0.yzw, r2.wzyx, c0.x + temp0.yzw = temp2.zyx * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.w + temp2.x = exp2(temp0.w); + // exp r2.y, r0.z + temp2.y = exp2(temp0.z); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // mul r1.xyz, r0.x, r2 + temp1.xyz = temp0.xxx * temp2.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_VertexShader4 Vertex_2_0 Has PRES False +struct Default_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct Default_VertexShader4_Output +{ + float4 position : POSITION; + float2 texcoord2 : TEXCOORD2; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i) +{ + Default_VertexShader4_Output o; + float4 temp0; + float2 temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c15 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c16 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r0.xy, r1, c17.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c17 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1.xy, v2 + o.texcoord1 = i.texcoord1; + // mov oD0.x, v3.x + o.color = i.color.x; + // + + return o; +} + +technique Default +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_VertexShader4(); // 25 + PixelShader = compile ps_2_0 Default_PixelShader3(); // 26 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 1; + SrcBlend = 5; + DestBlend = 2; + } +} + +technique Default_M +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 27 + PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 28 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 1; + SrcBlend = 5; + DestBlend = 2; + } +} + diff --git a/laseralpha.fx b/laseralpha.fx new file mode 100644 index 0000000..90dce2b --- /dev/null +++ b/laseralpha.fx @@ -0,0 +1,302 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +column_major float4x4 World : World : register(vs_2_0, c15); +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +texture Texture1 ; // 2 +sampler2D Texture1Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture Texture2 ; // 7 +sampler2D Texture2Sampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c17) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 14 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +// Default_M_PixelShader1 Pixel_2_0 Has PRES False +struct Default_M_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float4 temp3; + // def c0, -0.75, 0, 0, 0 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture1Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture2Sampler, i.texcoord1.xy); + // add r0.x, r0.x, c0.x + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r3.w, r0.x, c0.y + temp3.w = max(temp0.x, float1(0)); + // add r0.x, r3.w, r3.w + temp0.x = temp3.w + temp3.w; + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_M_VertexShader2 Vertex_2_0 Has PRES False +struct Default_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord2 : TEXCOORD2; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i) +{ + Default_M_VertexShader2_Output o; + float4 temp0; + float2 temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c15 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c16 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r0.xy, r1, c17.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c17 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1.xy, v2 + o.texcoord1 = i.texcoord1; + // + + return o; +} + +// Default_PixelShader3 Pixel_2_0 Has PRES False +struct Default_PixelShader3_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float4 temp3; + // def c0, 2.2, -0.75, 0, 0 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture1Sampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(Texture2Sampler, i.texcoord1.xy); + // add r0.x, r0.x, c0.y + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r3.w, r0.x, c0.z + temp3.w = max(temp0.x, float1(0)); + // add r0.x, r3.w, r3.w + temp0.x = temp3.w + temp3.w; + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // log r0.w, r1.x + temp0.w = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.y, r1.z + temp0.y = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.w + temp2.x = exp2(temp0.w); + // exp r2.y, r0.z + temp2.y = exp2(temp0.z); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // mul r1.xyz, r0.x, r2 + temp1.xyz = temp0.xxx * temp2.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_VertexShader4 Vertex_2_0 Has PRES False +struct Default_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_VertexShader4_Output +{ + float4 position : POSITION; + float2 texcoord2 : TEXCOORD2; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i) +{ + Default_VertexShader4_Output o; + float4 temp0; + float2 temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c15 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c16 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r0.xy, r1, c17.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c17 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1.xy, v2 + o.texcoord1 = i.texcoord1; + // + + return o; +} + +technique Default +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_VertexShader4(); // 23 + PixelShader = compile ps_2_0 Default_PixelShader3(); // 24 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + +technique Default_M +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 25 + PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 26 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + diff --git a/laserdistortion.fx b/laserdistortion.fx new file mode 100644 index 0000000..fbd7ade --- /dev/null +++ b/laserdistortion.fx @@ -0,0 +1,258 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +column_major float4x4 World : World : register(vs_2_0, c11) ; +column_major float4x4 View : View : register(vs_2_0, c14) ; +texture Texture1 ; // 4 +sampler2D Texture1Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 6 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture Texture2 ; // 9 +sampler2D Texture2Sampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c17) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 16 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 20 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +// Default_M_PixelShader1 Pixel_2_0 Has PRES False +struct Default_M_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0.5, -0.75 + // def c1, 0, 0, 0, 0 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(Texture1Sampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture2Sampler, i.texcoord1.xy); + // texld r2, t2, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r0.xyz, r1, c0.x, r0 + temp0.xyz = temp1.xyz * float3(2, 2, 2) + temp0.xyz; + // mul r0.w, r0.w, r1.w + temp0.w = temp0.w * temp1.w; + // add r0.xyz, r0, c0.y + temp0.xyz = temp0.xyz + float3(-1, -1, -1); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r1, t3 + temp0.x = dot(temp1.xyz, i.texcoord3.xyz); + // dp3 r0.y, r1, t4 + temp0.y = dot(temp1.xyz, i.texcoord4.xyz); + // dp3 r0.z, r1, t5 + temp0.z = dot(temp1.xyz, i.texcoord5.xyz); + // mad r1.xyz, r0, c0.z, c0.z + temp1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5); + // add r0.x, r2.x, c0.w + temp0.x = temp2.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.x, r0.x, c1.x + temp2.x = max(temp0.x, float1(0)); + // mul r0.x, r0.w, r2.x + temp0.x = temp0.w * temp2.x; + // add r1.w, r0.x, r0.x + temp1.w = temp0.x + temp0.x; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_M_VertexShader2 Vertex_2_0 Has PRES False +struct Default_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_M_VertexShader2_Output +{ + float4 position : POSITION; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float2 texcoord2 : TEXCOORD2; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i) +{ + Default_M_VertexShader2_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c13 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c11 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c12 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c17.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v3, c11 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v3, c12 + temp1.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v3, c13 + temp1.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 oT3.x, -r2, c14 + o.texcoord3.x = dot(-temp2.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT4.x, -r2, c15 + o.texcoord4.x = dot(-temp2.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT5.x, -r2, c16 + o.texcoord5.x = dot(-temp2.xyz, (View._m02_m12_m22_m32).xyz); + // dp3 r1.x, v2, c11 + temp1.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v2, c12 + temp1.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v2, c13 + temp1.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 oT3.y, -r2, c14 + o.texcoord3.y = dot(-temp2.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT4.y, -r2, c15 + o.texcoord4.y = dot(-temp2.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT5.y, -r2, c16 + o.texcoord5.y = dot(-temp2.xyz, (View._m02_m12_m22_m32).xyz); + // dp3 r1.x, v1, c11 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c12 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c13 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 oT3.z, r2, c14 + o.texcoord3.z = dot(temp2.xyz, (View._m00_m10_m20_m30).xyz); + // dp3 oT4.z, r2, c15 + o.texcoord4.z = dot(temp2.xyz, (View._m01_m11_m21_m31).xyz); + // dp3 oT5.z, r2, c16 + o.texcoord5.z = dot(temp2.xyz, (View._m02_m12_m22_m32).xyz); + // mul oT2.xy, r0, c17 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // mov oT1.xy, v5 + o.texcoord1 = i.texcoord1; + // + + return o; +} + +technique Default_M +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 25 + PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 26 + ZEnable = 1; + ZWriteEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + CullMode = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + +technique Default_L +{ +} + diff --git a/lightning.fx b/lightning.fx new file mode 100644 index 0000000..87fec1a --- /dev/null +++ b/lightning.fx @@ -0,0 +1,1012 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124); +float Time : Time; +texture Texture_0 ; // 6 +sampler2D Texture_0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 8 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float3 ColorDiffuse = { 1, 1, 1 }; +bool MultiTextureEnable : register(ps_2_0, c11) ; +float HDRMultiplier : register(ps_2_0, c12) = { 1 }; +float4 DiffuseCoordOffset : register(vs_2_0, c22) = { 0, 0, 1, 1 }; +bool MultiplyBlendEnable : register(ps_2_0, c13) ; +float EdgeFadeOut ; +texture Texture_1 ; // 21 +sampler2D Texture_1Sampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 23 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool UniqueWorldCoordEnable ; +float UniqueWorldCoordScalar : register(vs_2_0, c23) = { 0.01 }; +float DisplaceScalar : register(vs_2_0, c24) = { 1 }; +float DisplaceAmp : register(ps_2_0, c14) = { 1 }; +float DisplaceDivergenceAngle ; +float DisplaceSpeed = { 1 }; +bool UseRecolorColors : register(ps_2_0, c15) ; +bool CullingEnable = { 1 }; +// VS_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float texcoord3 : TEXCOORD3; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 5 + Mappings: 3 + 0 - ConstOutput: 17 ConstInput 3 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c0.x, c8.x + temp0.x = Time.x * DisplaceSpeed.x; + // mul c14.x, r0.x, (0.01) + expr14.x = temp0.x * (0.01); + // add r0.x, c6.x, (-1) + temp0.x = UniqueWorldCoordEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + // rcp c15.x, c5.x + expr15.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-1) + temp0.x = MultiplyBlendEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c18.x, r0.x, r1.x + expr18.x = temp0.x >= temp1.x; + // neg r0.xyz, c1.xyz + temp0.xyz = -ColorDiffuse.xyz; + // add c17.xyz, (1, 1, 1), r0.xyz + expr17.xyz = float3(1, 1, 1) + temp0.xyz; + // mul c19, c0.x, c3 + expr19 = Time.x * DiffuseCoordOffset; + // add r0.x, c2.x, (-1) + temp0.x = MultiTextureEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c21.x, r0.x, r1.x + expr21.x = temp0.x >= temp1.x; + // mul r0.x, c7.x, (0.0027777312217828493) + temp0.x = DisplaceDivergenceAngle.x * (0.0027777312217828493); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // cos r1.x, r0.x + temp1.x = cos(temp0.x); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // mov c12.x, r1.y + expr12.x = temp1.y; + // mov c13.x, r1.x + expr13.x = temp1.x; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, -2, 3, 0, 0 + // def c1, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c1.xxxy, c1.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // add r0.x, r1.x, r1.y + temp0.x = temp1.x + temp1.y; + // mul r0.x, r0.x, c23.x + temp0.x = temp0.x * UniqueWorldCoordScalar.x; + // mul r0.x, r0.x, c11.x + temp0.x = temp0.x * expr11.x; + // mul r0.yz, v2.xxyw, c24.x + temp0.yz = i.texcoord.xy * DisplaceScalar.xx; + // mad r0.x, r0.x, c1.z, r0.z + temp0.x = temp0.x * float1(0.1) + temp0.z; + // mul r0.z, r0.x, c13.x + temp0.z = temp0.x * expr13.x; + // mad oT1.y, r0.y, -c12.x, r0.z + o.texcoord1.y = temp0.y * -expr12.x + temp0.z; + // mad oT1.w, r0.y, c12.x, r0.z + o.texcoord1.w = temp0.y * expr12.x + temp0.z; + // mul r0.y, r0.y, c13.x + temp0.y = temp0.y * expr13.x; + // mad r0.z, r0.x, c12.x, r0.y + temp0.z = temp0.x * expr12.x + temp0.y; + // mad r0.x, r0.x, -c12.x, r0.y + temp0.x = temp0.x * -expr12.x + temp0.y; + // add oT1.xz, r0.zyxw, c14.x + o.texcoord1.xz = temp0.zx + expr14.xx; + // mov r1.w, c1.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xyz, -r1, c123 + temp0.xyz = -temp1.xyz + EyePosition.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.x, r1, r0 + temp0.x = dot(temp1.xyz, temp0.xyz); + // abs r0.x, r0.x + temp0.x = abs(temp0.x); + // mul r0.x, r0.x, c15.x + temp0.x = temp0.x * expr15.x; + // max r0.x, r0.x, c1.y + temp0.x = max(temp0.x, float1(0)); + // min r0.x, r0.x, c1.x + temp0.x = min(temp0.x, float1(1)); + // mad r0.y, r0.x, c0.x, c0.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r0.w, r0.x, v3.w + temp0.w = temp0.x * i.color.w; + // mov r1.xy, c1 + temp1.xy = float2(1, 0); + // mad r1, c17.xyzx, r1.xxxy, r1.yyyx + temp1 = expr17.xyzx * temp1.xxxy + temp1.yyyx; + // mov r0.xyz, v3 + temp0.xyz = i.color.xyz; + // mad r1, r0, r1, -r0 + temp1 = temp0 * temp1 + -temp0; + // mad oD0, c18.x, r1, r0 + o.color = expr18.x * temp1 + temp0; + // mov r0.xy, c19 + temp0.xy = expr19.xy; + // mad r0.xy, v2, c22.zwzw, -r0 + temp0.xy = i.texcoord.xy * DiffuseCoordOffset.zw + -temp0.xy; + // add r1, v2.xyxy, c19 + temp1 = i.texcoord.xyxy + expr19; + // add r0.xy, r0, -r1.zwzw + temp0.xy = temp0.xy + -temp1.zw; + // mad oT0.zw, c21.x, r0.xyxy, r1 + o.texcoord.zw = expr21.xx * temp0.xy + temp1.zw; + // mov oT0.xy, r1 + o.texcoord.xy = temp1.xy; + // mov oT3.x, c1.x + o.texcoord3 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float texcoord3 : TEXCOORD3; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 5 + Mappings: 3 + 0 - ConstOutput: 17 ConstInput 3 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c0.x, c8.x + temp0.x = Time.x * DisplaceSpeed.x; + // mul c14.x, r0.x, (0.01) + expr14.x = temp0.x * (0.01); + // add r0.x, c6.x, (-1) + temp0.x = UniqueWorldCoordEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + // rcp c15.x, c5.x + expr15.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-1) + temp0.x = MultiplyBlendEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c18.x, r0.x, r1.x + expr18.x = temp0.x >= temp1.x; + // neg r0.xyz, c1.xyz + temp0.xyz = -ColorDiffuse.xyz; + // add c17.xyz, (1, 1, 1), r0.xyz + expr17.xyz = float3(1, 1, 1) + temp0.xyz; + // mul c19, c0.x, c3 + expr19 = Time.x * DiffuseCoordOffset; + // add r0.x, c2.x, (-1) + temp0.x = MultiTextureEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c21.x, r0.x, r1.x + expr21.x = temp0.x >= temp1.x; + // mul r0.x, c7.x, (0.0027777312217828493) + temp0.x = DisplaceDivergenceAngle.x * (0.0027777312217828493); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // cos r1.x, r0.x + temp1.x = cos(temp0.x); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // mov c12.x, r1.y + expr12.x = temp1.y; + // mov c13.x, r1.x + expr13.x = temp1.x; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0.1, 0 + // def c1, -2, 3, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // mul r1.x, r1.x, c23.x + temp1.x = temp1.x * UniqueWorldCoordScalar.x; + // mul r1.x, r1.x, c11.x + temp1.x = temp1.x * expr11.x; + // mul r1.yz, v3.xxyw, c24.x + temp1.yz = i.texcoord.xy * DisplaceScalar.xx; + // mad r1.x, r1.x, c0.z, r1.z + temp1.x = temp1.x * float1(0.1) + temp1.z; + // mul r1.z, r1.x, c13.x + temp1.z = temp1.x * expr13.x; + // mad oT1.y, r1.y, -c12.x, r1.z + o.texcoord1.y = temp1.y * -expr12.x + temp1.z; + // mad oT1.w, r1.y, c12.x, r1.z + o.texcoord1.w = temp1.y * expr12.x + temp1.z; + // mul r1.y, r1.y, c13.x + temp1.y = temp1.y * expr13.x; + // mad r1.z, r1.x, c12.x, r1.y + temp1.z = temp1.x * expr12.x + temp1.y; + // mad r1.x, r1.x, -c12.x, r1.y + temp1.x = temp1.x * -expr12.x + temp1.y; + // add oT1.xz, r1.zyxw, c14.x + o.texcoord1.xz = temp1.zx + expr14.xx; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xyz, -r0, c123 + temp0.xyz = -temp0.xyz + EyePosition.xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // abs r0.x, r0.x + temp0.x = abs(temp0.x); + // mul r0.x, r0.x, c15.x + temp0.x = temp0.x * expr15.x; + // max r0.x, r0.x, c0.w + temp0.x = max(temp0.x, float1(0)); + // min r0.x, r0.x, c0.x + temp0.x = min(temp0.x, float1(1)); + // mad r0.y, r0.x, c1.x, c1.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r0.w, r0.x, v4.w + temp0.w = temp0.x * i.color.w; + // mov r1.xw, c0 + temp1.xw = float2(1, 0); + // mad r1, c17.xyzx, r1.xxxw, r1.wwwx + temp1 = expr17.xyzx * temp1.xxxw + temp1.wwwx; + // mov r0.xyz, v4 + temp0.xyz = i.color.xyz; + // mad r1, r0, r1, -r0 + temp1 = temp0 * temp1 + -temp0; + // mad oD0, c18.x, r1, r0 + o.color = expr18.x * temp1 + temp0; + // mov r0.xy, c19 + temp0.xy = expr19.xy; + // mad r0.xy, v3, c22.zwzw, -r0 + temp0.xy = i.texcoord.xy * DiffuseCoordOffset.zw + -temp0.xy; + // add r1, v3.xyxy, c19 + temp1 = i.texcoord.xyxy + expr19; + // add r0.xy, r0, -r1.zwzw + temp0.xy = temp0.xy + -temp1.zw; + // mad oT0.zw, c21.x, r0.xyxy, r1 + o.texcoord.zw = expr21.xx * temp0.xy + temp1.zw; + // mov oT0.xy, r1 + o.texcoord.xy = temp1.xy; + // mov oT3.x, c0.x + o.texcoord3 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_Array_Shader_2 Vertex_2_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float texcoord3 : TEXCOORD3; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 11 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 5 + Mappings: 3 + 0 - ConstOutput: 17 ConstInput 3 + 1 - ConstOutput: 21 ConstInput 1 + 2 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c0.x, c8.x + temp0.x = Time.x * DisplaceSpeed.x; + // mul c14.x, r0.x, (0.01) + expr14.x = temp0.x * (0.01); + // add r0.x, c6.x, (-1) + temp0.x = UniqueWorldCoordEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + // rcp c15.x, c5.x + expr15.x = 1.0f / (EdgeFadeOut.x); + // add r0.x, c4.x, (-1) + temp0.x = MultiplyBlendEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c18.x, r0.x, r1.x + expr18.x = temp0.x >= temp1.x; + // neg r0.xyz, c1.xyz + temp0.xyz = -ColorDiffuse.xyz; + // add c17.xyz, (1, 1, 1), r0.xyz + expr17.xyz = float3(1, 1, 1) + temp0.xyz; + // mul c19, c0.x, c3 + expr19 = Time.x * DiffuseCoordOffset; + // add r0.x, c2.x, (-1) + temp0.x = MultiTextureEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c21.x, r0.x, r1.x + expr21.x = temp0.x >= temp1.x; + // mul r0.x, c7.x, (0.0027777312217828493) + temp0.x = DisplaceDivergenceAngle.x * (0.0027777312217828493); + // add r1.x, r0.x, (0.5) + temp1.x = temp0.x + (0.5); + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // mul r1.x, r0.x, (6.283185307179586) + temp1.x = temp0.x * (6.283185307179586); + // add r0.x, r1.x, (-3.141592653589793) + temp0.x = temp1.x + (-3.141592653589793); + // cos r1.x, r0.x + temp1.x = cos(temp0.x); + // sin r1.y, r0.x + temp1.y = sin(temp0.x); + // mov c12.x, r1.y + expr12.x = temp1.y; + // mov c13.x, r1.x + expr13.x = temp1.x; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3; + float2 addr0; + // def c0, -2, 3, 0, 0 + // def c1, 1, -1, 0.1, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c1.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c1.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // mul r1.x, r1.x, c23.x + temp1.x = temp1.x * UniqueWorldCoordScalar.x; + // mul r1.x, r1.x, c11.x + temp1.x = temp1.x * expr11.x; + // mul r1.yz, v6.xxyw, c24.x + temp1.yz = i.texcoord.xy * DisplaceScalar.xx; + // mad r1.x, r1.x, c1.z, r1.z + temp1.x = temp1.x * float1(0.1) + temp1.z; + // mul r1.z, r1.x, c13.x + temp1.z = temp1.x * expr13.x; + // mad oT1.y, r1.y, -c12.x, r1.z + o.texcoord1.y = temp1.y * -expr12.x + temp1.z; + // mad oT1.w, r1.y, c12.x, r1.z + o.texcoord1.w = temp1.y * expr12.x + temp1.z; + // mul r1.y, r1.y, c13.x + temp1.y = temp1.y * expr13.x; + // mad r1.z, r1.x, c12.x, r1.y + temp1.z = temp1.x * expr12.x + temp1.y; + // mad r1.x, r1.x, -c12.x, r1.y + temp1.x = temp1.x * -expr12.x + temp1.y; + // add oT1.xz, r1.zyxw, c14.x + o.texcoord1.xz = temp1.zx + expr14.xx; + // mov r0.w, c1.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xyz, -r0, c123 + temp0.xyz = -temp0.xyz + EyePosition.xyz; + // mul r1, v5.zxyy, c128[a0.y].yzxy + temp1 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r1, c128[a0.y].wwwx, v5.xyzx, r1 + temp1 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp1; + // mul r2, v5.yzxz, c128[a0.y].zxyz + temp2 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r1, r1, c1.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.y] + temp2.xyz = temp1.www * WorldBones[0 + addr0.y].xyz; + // mad r2.xyz, c128[a0.y].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.y].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.y].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.y].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.y].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.y].zxy * -temp1.yzx + temp2.xyz; + // mul r1.xyz, r1, v1.y + temp1.xyz = temp1.xyz * i.blendweight.yyy; + // mul r2, v4.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v4.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v4.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c1.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // mad r1.xyz, r2, v1.x, r1 + temp1.xyz = temp2.xyz * i.blendweight.xxx + temp1.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // abs r0.x, r0.x + temp0.x = abs(temp0.x); + // mul r0.x, r0.x, c15.x + temp0.x = temp0.x * expr15.x; + // max r0.x, r0.x, c1.w + temp0.x = max(temp0.x, float1(0)); + // min r0.x, r0.x, c1.x + temp0.x = min(temp0.x, float1(1)); + // mad r0.y, r0.x, c0.x, c0.y + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul r0.x, r0.y, r0.x + temp0.x = temp0.y * temp0.x; + // mul r0.w, r0.x, v7.w + temp0.w = temp0.x * i.color.w; + // mov r1.xw, c1 + temp1.xw = float2(1, 0); + // mad r1, c17.xyzx, r1.xxxw, r1.wwwx + temp1 = expr17.xyzx * temp1.xxxw + temp1.wwwx; + // mov r0.xyz, v7 + temp0.xyz = i.color.xyz; + // mad r1, r0, r1, -r0 + temp1 = temp0 * temp1 + -temp0; + // mad oD0, c18.x, r1, r0 + o.color = expr18.x * temp1 + temp0; + // mov r0.xy, c19 + temp0.xy = expr19.xy; + // mad r0.xy, v6, c22.zwzw, -r0 + temp0.xy = i.texcoord.xy * DiffuseCoordOffset.zw + -temp0.xy; + // add r1, v6.xyxy, c19 + temp1 = i.texcoord.xyxy + expr19; + // add r0.xy, r0, -r1.zwzw + temp0.xy = temp0.xy + -temp1.zw; + // mad oT0.zw, c21.x, r0.xyxy, r1 + o.texcoord.zw = expr21.xx * temp0.xy + temp1.zw; + // mov oT0.xy, r1 + o.texcoord.xy = temp1.xy; + // mov oT3.x, c1.x + o.texcoord3 = float4(1, 1, 1, 1); + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_2_0 VS_Array_Shader_0(), // 39 + compile vs_2_0 VS_Array_Shader_1(), // 40 + compile vs_2_0 VS_Array_Shader_2(), // 41 +}; +// Default_Expression4 Expression_2_0 Has PRES False +float Default_Expression4() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c0.x, (-1) + temp0.x = MultiplyBlendEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // neg r0.x, r2.x + temp0.x = -temp2.x; + // add c0.x, r0.x, (2) + expr0.x = temp0.x + (2); + return expr0; +} + +// Default_Expression5 Expression_2_0 Has PRES False +float Default_Expression5() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c0.x, (-1) + temp0.x = MultiplyBlendEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // mul r0.x, r2.x, (7) + temp0.x = temp2.x * (7); + // add c0.x, r0.x, (2) + expr0.x = temp0.x + (2); + return expr0; +} + +// Default_Expression6 Expression_2_0 Has PRES False +float Default_Expression6() +{ + float1 expr0; + // add c0.x, c0.x, (1) + expr0.x = CullingEnable.x + (1); + return expr0; +} + +// Default_PixelShader7 Pixel_2_0 Has PRES False +struct Default_PixelShader7_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float texcoord3 : TEXCOORD3; +}; + +float4 Default_PixelShader7(Default_PixelShader7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, -1, 2.2, 0.5, 1 + // def c2, 0.35, 0, 0, 0 + // dcl v0 + // dcl t0 + // dcl t1 + // dcl t3.x + // dcl_2d s0 + // dcl_2d s1 + // mov r0.x, t1.z + temp0.x = i.texcoord1.z; + // mov r0.y, t1.w + temp0.y = i.texcoord1.w; + // texld r0, r0, s1 + temp0 = tex2D(Texture_1Sampler, temp0.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture_1Sampler, i.texcoord1.xy); + // add r2.yw, r0.y, r1.y + temp2.yw = temp0.y + temp1.y; + // add r2.xz, r0.x, r1.x + temp2.xz = temp0.x + temp1.x; + // add r0, r2, c1.x + temp0 = temp2 + float4(-1, -1, -1, -1); + // mad r0, r0, c14.x, t0 + temp0 = temp0 * DisplaceAmp.x + i.texcoord; + // mov r1.x, r0.z + temp1.x = temp0.z; + // mov r1.y, r0.w + temp1.y = temp0.w; + // texld r0, r0, s0 + temp0 = tex2D(Texture_0Sampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(Texture_0Sampler, temp1.xy); + // mul r1, r0, r1 + temp1 = temp0 * temp1; + // cmp r0, -c11.x, r0, r1 + temp0 = (-MultiTextureEnable.x >= 0) ? temp0 : temp1; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c1.y + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r1.xyz, v0, c12.x + temp1.xyz = i.color.xyz * HDRMultiplier.xxx; + // mul r1.w, v0.w, v0.w + temp1.w = i.color.w * i.color.w; + // mov r2.xyz, v0.w + temp2.xyz = i.color.w; + // mov r2.w, c12.x + temp2.w = HDRMultiplier.x; + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mul r2, r0, r1 + temp2 = temp0 * temp1; + // mad r0, r1, -r0, c1.z + temp0 = temp1 * -temp0 + float4(0.5, 0.5, 0.5, 0.5); + // cmp r0, -c13.x, r2, r0 + temp0 = (-MultiplyBlendEnable.x >= 0) ? temp2 : temp0; + // mov r1.w, c1.w + temp1.w = float1(1); + // add r1.xyz, r1.w, -c0 + temp1.xyz = temp1.www + -RecolorColor.xyz; + // mov r2.xyz, c0 + temp2.xyz = RecolorColor.xyz; + // mad r1.xyz, r1, c2.x, r2 + temp1.xyz = temp1.xyz * float3(0.35, 0.35, 0.35) + temp2.xyz; + // mul r1.xyz, r0, r1 + temp1.xyz = temp0.xyz * temp1.xyz; + // cmp r1.xyz, -c15.x, r0, r1 + temp1.xyz = (-UseRecolorColors.xxx >= 0) ? temp0.xyz : temp1.xyz; + // add r1.xyz, r1, r1 + temp1.xyz = temp1.xyz + temp1.xyz; + // mul r0.xyz, r1, t3.x + temp0.xyz = temp1.xyz * i.texcoord3.xxx; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_Expression8 Expression_2_0 Has PRES False +float Default_Expression8() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression8()]; // 42 + PixelShader = compile ps_2_0 Default_PixelShader7(); // 43 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + AlphaBlendEnable = 1; + CullMode = Default_Expression6(); // 0 + SrcBlend = Default_Expression5(); // 0 + DestBlend = Default_Expression4(); // 0 + } +} + diff --git a/linerenderers.fx b/linerenderers.fx new file mode 100644 index 0000000..be3a4bc --- /dev/null +++ b/linerenderers.fx @@ -0,0 +1,1769 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +column_major float4x4 Projection : Projection : register(vs_2_0, c11); +float Time : Time; +texture Texture0 ; // 2 +sampler2D Texture0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 5 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture Texture1 ; // 9 +sampler2D Texture1Sampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 12 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int BlendMode ; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_0(PSCreateShadowMap_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3529412, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mad r0, v0.w, r0.w, c0.x + temp0 = i.color.w * temp0.w + float4(-0.3529412, -0.3529412, -0.3529412, -0.3529412); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float3 color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -2.352941, 0, 0 + // dcl v0.xyz + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-2.3529413, -2.3529413, -2.3529413, -2.3529413); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_2 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_2_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_2(PSCreateShadowMap_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3529412, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mad r0, v0.w, r0.w, c0.x + temp0 = i.color.w * temp0.w + float4(-0.3529412, -0.3529412, -0.3529412, -0.3529412); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_3 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_3_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_3(PSCreateShadowMap_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3529412, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mad r0, v0.w, r0.w, c0.x + temp0 = i.color.w * temp0.w + float4(-0.3529412, -0.3529412, -0.3529412, -0.3529412); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_4 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_4_Input +{ + float3 color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_4(PSCreateShadowMap_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -2.352941, 0, 0 + // dcl v0.xyz + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-2.3529413, -2.3529413, -2.3529413, -2.3529413); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_5 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_5_Input +{ + float3 color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_5(PSCreateShadowMap_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, -2.352941, 0, 0 + // dcl v0.xyz + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // dp3 r0.x, r0, c0.x + temp0.x = dot(temp0.xyz, float3(1, 1, 1)); + // add r0, r0.x, c0.y + temp0 = temp0.x + float4(-2.3529413, -2.3529413, -2.3529413, -2.3529413); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_6 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_6_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_6(PSCreateShadowMap_Array_Shader_6_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3529412, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mad r0, v0.w, r0.w, c0.x + temp0 = i.color.w * temp0.w + float4(-0.3529412, -0.3529412, -0.3529412, -0.3529412); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[7] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 45 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 46 + compile ps_2_0 PSCreateShadowMap_Array_Shader_2(), // 47 + compile ps_2_0 PSCreateShadowMap_Array_Shader_3(), // 48 + compile ps_2_0 PSCreateShadowMap_Array_Shader_4(), // 49 + compile ps_2_0 PSCreateShadowMap_Array_Shader_5(), // 50 + compile ps_2_0 PSCreateShadowMap_Array_Shader_6(), // 51 +}; +// _CreateShadowMap_Expression8 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression8() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = BlendMode.x; + return expr0; +} + +// _CreateShadowMap_VertexShader9 Vertex_2_0 Has PRES False +struct _CreateShadowMap_VertexShader9_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct _CreateShadowMap_VertexShader9_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +_CreateShadowMap_VertexShader9_Output _CreateShadowMap_VertexShader9(_CreateShadowMap_VertexShader9_Input i) +{ + _CreateShadowMap_VertexShader9_Output o; + float4 temp0; + float2 temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c14 + temp1.y = dot(temp0, (Projection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c13 + temp1.x = dot(temp0, (Projection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// AlphaNoDepthTest_M_PixelShader10 Pixel_2_0 Has PRES False +struct AlphaNoDepthTest_M_PixelShader10_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 AlphaNoDepthTest_M_PixelShader10(AlphaNoDepthTest_M_PixelShader10_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaNoDepthTest_M_VertexShader11 Vertex_2_0 Has PRES False +struct AlphaNoDepthTest_M_VertexShader11_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaNoDepthTest_M_VertexShader11_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +AlphaNoDepthTest_M_VertexShader11_Output AlphaNoDepthTest_M_VertexShader11(AlphaNoDepthTest_M_VertexShader11_Input i) +{ + AlphaNoDepthTest_M_VertexShader11_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// AdditiveNoDepthTest_M_PixelShader12 Pixel_2_0 Has PRES False +struct AdditiveNoDepthTest_M_PixelShader12_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 AdditiveNoDepthTest_M_PixelShader12(AdditiveNoDepthTest_M_PixelShader12_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveNoDepthTest_M_VertexShader13 Vertex_2_0 Has PRES False +struct AdditiveNoDepthTest_M_VertexShader13_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveNoDepthTest_M_VertexShader13_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +AdditiveNoDepthTest_M_VertexShader13_Output AdditiveNoDepthTest_M_VertexShader13(AdditiveNoDepthTest_M_VertexShader13_Input i) +{ + AdditiveNoDepthTest_M_VertexShader13_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// Multiplicative_M_PixelShader14 Pixel_2_0 Has PRES False +struct Multiplicative_M_PixelShader14_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Multiplicative_M_PixelShader14(Multiplicative_M_PixelShader14_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Multiplicative_M_VertexShader15 Vertex_2_0 Has PRES False +struct Multiplicative_M_VertexShader15_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Multiplicative_M_VertexShader15_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Multiplicative_M_VertexShader15_Output Multiplicative_M_VertexShader15(Multiplicative_M_VertexShader15_Input i) +{ + Multiplicative_M_VertexShader15_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// AlphaTest_M_PixelShader16 Pixel_2_0 Has PRES False +struct AlphaTest_M_PixelShader16_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 AlphaTest_M_PixelShader16(AlphaTest_M_PixelShader16_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaTest_M_VertexShader17 Vertex_2_0 Has PRES False +struct AlphaTest_M_VertexShader17_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaTest_M_VertexShader17_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +AlphaTest_M_VertexShader17_Output AlphaTest_M_VertexShader17(AlphaTest_M_VertexShader17_Input i) +{ + AlphaTest_M_VertexShader17_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// AdditiveAlphaTest_M_PixelShader18 Pixel_2_0 Has PRES False +struct AdditiveAlphaTest_M_PixelShader18_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 AdditiveAlphaTest_M_PixelShader18(AdditiveAlphaTest_M_PixelShader18_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, -1, 0.01, 0, 0 + // dcl t0.xy + // dcl t1 + // dcl t2 + // dcl_2d s0 + // dcl_2d s1 + // mov r0.x, t1.z + temp0.x = i.texcoord1.z; + // mov r0.y, t1.w + temp0.y = i.texcoord1.w; + // texld r0, r0, s1 + temp0 = tex2D(Texture1Sampler, temp0.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture1Sampler, i.texcoord1.xy); + // add r0.xy, r0, r1 + temp0.xy = temp0.xy + temp1.xy; + // add r0.xy, r0, c0.x + temp0.xy = temp0.xy + float2(-1, -1); + // mad r0.xy, r0, c0.y, t0 + temp0.xy = temp0.xy * float2(0.01, 0.01) + i.texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(Texture0Sampler, temp0.xy); + // mul r0, r0, t2 + temp0 = temp0 * i.texcoord2; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveAlphaTest_M_VertexShader19 Vertex_2_0 Has PRES True +struct AdditiveAlphaTest_M_VertexShader19_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveAlphaTest_M_VertexShader19_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; +}; + +AdditiveAlphaTest_M_VertexShader19_Output AdditiveAlphaTest_M_VertexShader19(AdditiveAlphaTest_M_VertexShader19_Input i) +{ + /* + PRSI + OutputRegisterOffset: 15 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 15 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr15; + float4 expr16; + { + // Expression_2_1 + // mul c15.x, c0.x, (0.03) + expr15.x = Time.x * (0.03); + // mul c16.x, c0.x, (0.06) + expr16.x = Time.x * (0.06); + } + + AdditiveAlphaTest_M_VertexShader19_Output o; + float4 temp0; + // def c0, 0.07071161, 0.001325808, -0.07070975, 0.0006629213 + // def c1, 0.001325843, 0.0353558, -0.0006629039, 0.03535488 + // def c2, 1, 0, 0.00625, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul r0.xy, v1, c0 + temp0.xy = i.texcoord.xy * float2(0.070711605, 0.0013258078); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // add oT1.x, r0.x, c15.x + o.texcoord1.x = temp0.x + expr15.x; + // mul r0, v1.yxyx, c1 + temp0 = i.texcoord.yxyx * float4(0.0013258426, 0.035355803, -0.0006629039, 0.035354875); + // mad oT1.yw, v1.xxzy, c0.xzzw, r0.xxzw + o.texcoord1.yw = i.texcoord.xy * float2(-0.07070975, 0.0006629213) + temp0.xw; + // add r0.x, r0.z, r0.y + temp0.x = temp0.z + temp0.y; + // add oT1.z, r0.x, c16.x + o.texcoord1.z = temp0.x + expr16.x; + // mad r0, v0.xyzx, c2.xxxy, c2.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mul oT0.xy, v1, c2.xzzw + o.texcoord = i.texcoord * float4(1, 0.00625, 0.00625, 0); + // mov oT2, v2 + o.texcoord2 = i.color; + // + + return o; +} + +// Additive_M_PixelShader20 Pixel_2_0 Has PRES False +struct Additive_M_PixelShader20_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Additive_M_PixelShader20(Additive_M_PixelShader20_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive_M_VertexShader21 Vertex_2_0 Has PRES False +struct Additive_M_VertexShader21_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Additive_M_VertexShader21_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Additive_M_VertexShader21_Output Additive_M_VertexShader21(Additive_M_VertexShader21_Input i) +{ + Additive_M_VertexShader21_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// Alpha_M_PixelShader22 Pixel_2_0 Has PRES False +struct Alpha_M_PixelShader22_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Alpha_M_PixelShader22(Alpha_M_PixelShader22_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Alpha_M_VertexShader23 Vertex_2_0 Has PRES False +struct Alpha_M_VertexShader23_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Alpha_M_VertexShader23_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Alpha_M_VertexShader23_Output Alpha_M_VertexShader23(Alpha_M_VertexShader23_Input i) +{ + Alpha_M_VertexShader23_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// AlphaNoDepthTest_PixelShader24 Pixel_2_0 Has PRES False +struct AlphaNoDepthTest_PixelShader24_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 AlphaNoDepthTest_PixelShader24(AlphaNoDepthTest_PixelShader24_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaNoDepthTest_VertexShader25 Vertex_2_0 Has PRES False +struct AlphaNoDepthTest_VertexShader25_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaNoDepthTest_VertexShader25_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +AlphaNoDepthTest_VertexShader25_Output AlphaNoDepthTest_VertexShader25(AlphaNoDepthTest_VertexShader25_Input i) +{ + AlphaNoDepthTest_VertexShader25_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// AdditiveNoDepthTest_PixelShader26 Pixel_2_0 Has PRES False +struct AdditiveNoDepthTest_PixelShader26_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 AdditiveNoDepthTest_PixelShader26(AdditiveNoDepthTest_PixelShader26_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveNoDepthTest_VertexShader27 Vertex_2_0 Has PRES False +struct AdditiveNoDepthTest_VertexShader27_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveNoDepthTest_VertexShader27_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +AdditiveNoDepthTest_VertexShader27_Output AdditiveNoDepthTest_VertexShader27(AdditiveNoDepthTest_VertexShader27_Input i) +{ + AdditiveNoDepthTest_VertexShader27_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// Multiplicative_PixelShader28 Pixel_2_0 Has PRES False +struct Multiplicative_PixelShader28_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Multiplicative_PixelShader28(Multiplicative_PixelShader28_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Multiplicative_VertexShader29 Vertex_2_0 Has PRES False +struct Multiplicative_VertexShader29_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Multiplicative_VertexShader29_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Multiplicative_VertexShader29_Output Multiplicative_VertexShader29(Multiplicative_VertexShader29_Input i) +{ + Multiplicative_VertexShader29_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// AlphaTest_PixelShader30 Pixel_2_0 Has PRES False +struct AlphaTest_PixelShader30_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 AlphaTest_PixelShader30(AlphaTest_PixelShader30_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaTest_VertexShader31 Vertex_2_0 Has PRES False +struct AlphaTest_VertexShader31_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaTest_VertexShader31_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +AlphaTest_VertexShader31_Output AlphaTest_VertexShader31(AlphaTest_VertexShader31_Input i) +{ + AlphaTest_VertexShader31_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// AdditiveAlphaTest_PixelShader32 Pixel_2_0 Has PRES False +struct AdditiveAlphaTest_PixelShader32_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 AdditiveAlphaTest_PixelShader32(AdditiveAlphaTest_PixelShader32_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, -1, 0.01, 2.2, 0 + // dcl t0.xy + // dcl t1 + // dcl t2 + // dcl_2d s0 + // dcl_2d s1 + // mov r0.x, t1.z + temp0.x = i.texcoord1.z; + // mov r0.y, t1.w + temp0.y = i.texcoord1.w; + // texld r0, r0, s1 + temp0 = tex2D(Texture1Sampler, temp0.xy); + // texld r1, t1, s1 + temp1 = tex2D(Texture1Sampler, i.texcoord1.xy); + // add r0.xy, r0, r1 + temp0.xy = temp0.xy + temp1.xy; + // add r0.xy, r0, c0.x + temp0.xy = temp0.xy + float2(-1, -1); + // mad r0.xy, r0, c0.y, t0 + temp0.xy = temp0.xy * float2(0.01, 0.01) + i.texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(Texture0Sampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.z + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, t2 + temp0 = temp0 * i.texcoord2; + // add r0, r0, r0 + temp0 = temp0 + temp0; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AdditiveAlphaTest_VertexShader33 Vertex_2_0 Has PRES True +struct AdditiveAlphaTest_VertexShader33_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AdditiveAlphaTest_VertexShader33_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; +}; + +AdditiveAlphaTest_VertexShader33_Output AdditiveAlphaTest_VertexShader33(AdditiveAlphaTest_VertexShader33_Input i) +{ + /* + PRSI + OutputRegisterOffset: 15 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 15 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr15; + float4 expr16; + { + // Expression_2_1 + // mul c15.x, c0.x, (0.03) + expr15.x = Time.x * (0.03); + // mul c16.x, c0.x, (0.06) + expr16.x = Time.x * (0.06); + } + + AdditiveAlphaTest_VertexShader33_Output o; + float4 temp0; + // def c0, 0.07071161, 0.001325808, -0.07070975, 0.0006629213 + // def c1, 0.001325843, 0.0353558, -0.0006629039, 0.03535488 + // def c2, 1, 0, 0.00625, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul r0.xy, v1, c0 + temp0.xy = i.texcoord.xy * float2(0.070711605, 0.0013258078); + // add r0.x, r0.y, r0.x + temp0.x = temp0.y + temp0.x; + // add oT1.x, r0.x, c15.x + o.texcoord1.x = temp0.x + expr15.x; + // mul r0, v1.yxyx, c1 + temp0 = i.texcoord.yxyx * float4(0.0013258426, 0.035355803, -0.0006629039, 0.035354875); + // mad oT1.yw, v1.xxzy, c0.xzzw, r0.xxzw + o.texcoord1.yw = i.texcoord.xy * float2(-0.07070975, 0.0006629213) + temp0.xw; + // add r0.x, r0.z, r0.y + temp0.x = temp0.z + temp0.y; + // add oT1.z, r0.x, c16.x + o.texcoord1.z = temp0.x + expr16.x; + // mad r0, v0.xyzx, c2.xxxy, c2.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mul oT0.xy, v1, c2.xzzw + o.texcoord = i.texcoord * float4(1, 0.00625, 0.00625, 0); + // mov oT2, v2 + o.texcoord2 = i.color; + // + + return o; +} + +// Additive_PixelShader34 Pixel_2_0 Has PRES False +struct Additive_PixelShader34_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Additive_PixelShader34(Additive_PixelShader34_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive_VertexShader35 Vertex_2_0 Has PRES False +struct Additive_VertexShader35_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Additive_VertexShader35_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Additive_VertexShader35_Output Additive_VertexShader35(Additive_VertexShader35_Input i) +{ + Additive_VertexShader35_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +// Alpha_PixelShader36 Pixel_2_0 Has PRES False +struct Alpha_PixelShader36_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Alpha_PixelShader36(Alpha_PixelShader36_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, t1 + temp0 = temp0 * i.texcoord1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Alpha_VertexShader37 Vertex_2_0 Has PRES False +struct Alpha_VertexShader37_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Alpha_VertexShader37_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Alpha_VertexShader37_Output Alpha_VertexShader37(Alpha_VertexShader37_Input i) +{ + Alpha_VertexShader37_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, v2 + o.texcoord1 = i.color; + // + + return o; +} + +technique Alpha +{ + pass P0 + { + VertexShader = compile vs_2_0 Alpha_VertexShader37(); // 17 + PixelShader = compile ps_2_0 Alpha_PixelShader36(); // 18 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique Additive +{ + pass P0 + { + VertexShader = compile vs_2_0 Additive_VertexShader35(); // 19 + PixelShader = compile ps_2_0 Additive_PixelShader34(); // 20 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AdditiveAlphaTest +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveAlphaTest_VertexShader33(); // 21 + PixelShader = compile ps_2_0 AdditiveAlphaTest_PixelShader32(); // 22 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AlphaTest +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaTest_VertexShader31(); // 23 + PixelShader = compile ps_2_0 AlphaTest_PixelShader30(); // 24 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Multiplicative +{ + pass P0 + { + VertexShader = compile vs_2_0 Multiplicative_VertexShader29(); // 25 + PixelShader = compile ps_2_0 Multiplicative_PixelShader28(); // 26 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + AlphaTestEnable = 0; + } +} + +technique AdditiveNoDepthTest +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveNoDepthTest_VertexShader27(); // 27 + PixelShader = compile ps_2_0 AdditiveNoDepthTest_PixelShader26(); // 28 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AlphaNoDepthTest +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaNoDepthTest_VertexShader25(); // 29 + PixelShader = compile ps_2_0 AlphaNoDepthTest_PixelShader24(); // 30 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique Alpha_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Alpha_M_VertexShader23(); // 31 + PixelShader = compile ps_2_0 Alpha_M_PixelShader22(); // 32 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique Additive_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Additive_M_VertexShader21(); // 33 + PixelShader = compile ps_2_0 Additive_M_PixelShader20(); // 34 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AdditiveAlphaTest_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveAlphaTest_M_VertexShader19(); // 35 + PixelShader = compile ps_2_0 AdditiveAlphaTest_M_PixelShader18(); // 36 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AlphaTest_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaTest_M_VertexShader17(); // 37 + PixelShader = compile ps_2_0 AlphaTest_M_PixelShader16(); // 38 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Multiplicative_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Multiplicative_M_VertexShader15(); // 39 + PixelShader = compile ps_2_0 Multiplicative_M_PixelShader14(); // 40 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + AlphaTestEnable = 0; + } +} + +technique AdditiveNoDepthTest_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AdditiveNoDepthTest_M_VertexShader13(); // 41 + PixelShader = compile ps_2_0 AdditiveNoDepthTest_M_PixelShader12(); // 42 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AlphaNoDepthTest_M +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaNoDepthTest_M_VertexShader11(); // 43 + PixelShader = compile ps_2_0 AlphaNoDepthTest_M_PixelShader10(); // 44 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader9(); // 52 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression8()]; // 53 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/muzzleflash.fx b/muzzleflash.fx new file mode 100644 index 0000000..436a215 --- /dev/null +++ b/muzzleflash.fx @@ -0,0 +1,1045 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124); +float3 ColorEmissive : register(vs_2_0, c15) = { 1, 1, 1 }; +texture Texture_0 ; // 6 +sampler2D Texture_0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 8 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; +}; +bool MultiTextureEnable ; +float TexCoordTransformAngle_0 = { 1 }; +float TexCoordTransformU_0 : register(vs_2_0, c16) = { 0.5 }; +float TexCoordTransformV_0 : register(vs_2_0, c17) = { 0.5 }; +float TexCoordTransformU_1 : register(vs_2_0, c18) = { 0.5 }; +float TexCoordTransformV_1 : register(vs_2_0, c19) = { 0.5 }; +float TexCoordTransformU_2 : register(vs_2_0, c20) = { 0.5 }; +float TexCoordTransformV_2 : register(vs_2_0, c21) = { 0.5 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c22) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 26 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 29 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float3 color : COLOR; + float2 texcoord2 : TEXCOORD2; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-1) + temp0.x = MultiTextureEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul r0.x, c1.x, c2.x + temp0.x = TexCoordTransformAngle_0.x * Time.x; + // mul r1.x, r0.x, (0.15915494309189535) + temp1.x = temp0.x * (0.15915494309189535); + // add r0.x, r1.x, (0.5) + temp0.x = temp1.x + (0.5); + // frc r1.x, r0.x + temp1.x = frac(temp0.x); + // mul r0.x, r1.x, (6.283185307179586) + temp0.x = temp1.x * (6.283185307179586); + // add r1.x, r0.x, (-3.141592653589793) + temp1.x = temp0.x + (-3.141592653589793); + // cos r0.x, r1.x + temp0.x = cos(temp1.x); + // sin r0.y, r1.x + temp0.y = sin(temp1.x); + // mov c11.x, r0.y + expr11.x = temp0.y; + // mov c12.x, r0.x + expr12.x = temp0.x; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 100, 0 + // def c1, 0.5, 1.5, 2.5, 0 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c22.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oD0.xyz, v1, c15 + o.color = i.color * ColorEmissive; + // mul oT2.xy, r0, c22 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // mov r0.x, c18.x + temp0.x = TexCoordTransformU_1.x; + // mov r0.y, c19.x + temp0.y = TexCoordTransformV_1.x; + // add r0.zw, -r0.xyxy, v2.xyxy + temp0.zw = -temp0.xy + i.texcoord.xy; + // mul r1.xy, r0.wzzw, c12.x + temp1.xy = temp0.wz * expr12.xx; + // mad r2.xy, r0.wzzw, c11.x, r1.yxzw + temp2.xy = temp0.wz * expr11.xx + temp1.yx; + // mad r2.zw, r0, -c11.x, r1.xyxy + temp2.zw = temp0.zw * -expr11.xx + temp1.xy; + // add r0.zw, r0.xyxy, r2.xywy + temp0.zw = temp0.xy + temp2.wy; + // add r1.xy, r0, r2.xzzw + temp1.xy = temp0.xy + temp2.xz; + // add r0.xy, r0.zwzw, -r1 + temp0.xy = temp0.zw + -temp1.xy; + // mad r1.zw, c14.x, r0.xyxy, r1.xyxy + temp1.zw = expr14.xx * temp0.xy + temp1.xy; + // mov r0.x, c20.x + temp0.x = TexCoordTransformU_2.x; + // mov r0.y, c21.x + temp0.y = TexCoordTransformV_2.x; + // add r0.zw, -r0.xyxy, v2.xyxy + temp0.zw = -temp0.xy + i.texcoord.xy; + // mul r2.xy, r0.wzzw, c12.x + temp2.xy = temp0.wz * expr12.xx; + // mad r3.xy, r0.wzzw, c11.x, r2.yxzw + temp3.xy = temp0.wz * expr11.xx + temp2.yx; + // mad r3.zw, r0, -c11.x, r2.xyxy + temp3.zw = temp0.zw * -expr11.xx + temp2.xy; + // add r0.zw, r0.xyxy, r3.xywy + temp0.zw = temp0.xy + temp3.wy; + // add r2.xy, r0, r3.xzzw + temp2.xy = temp0.xy + temp3.xz; + // add r0.xy, r0.zwzw, -r2 + temp0.xy = temp0.zw + -temp2.xy; + // mad r2.zw, c14.x, r0.xyxy, r2.xyxy + temp2.zw = expr14.xx * temp0.xy + temp2.xy; + // mul r0.x, v1.w, c0.z + temp0.x = i.color.w * float1(100); + // slt r0.xyz, r0.x, c1 + temp0.xyz = (temp0.xxx < float3(0.5, 1.5, 2.5)) ? 1 : 0; + // lrp r3, r0.z, r2, v2.xyxy + temp3 = lerp(i.texcoord.xyxy, temp2, temp0.z); + // lrp r2, r0.y, r1, r3 + temp2 = lerp(temp3, temp1, temp0.y); + // mov r0.y, c16.x + temp0.y = TexCoordTransformU_0.x; + // mov r0.z, c17.x + temp0.z = TexCoordTransformV_0.x; + // add r1.xy, -r0.yzzw, v2 + temp1.xy = -temp0.yz + i.texcoord.xy; + // mul r1.zw, r1.xyyx, c12.x + temp1.zw = temp1.yx * expr12.xx; + // mad r3.xy, r1.yxzw, c11.x, r1.wzzw + temp3.xy = temp1.yx * expr11.xx + temp1.wz; + // mad r3.zw, r1.xyxy, -c11.x, r1 + temp3.zw = temp1.xy * -expr11.xx + temp1.zw; + // add r1.xy, r0.yzzw, r3.wyzw + temp1.xy = temp0.yz + temp3.wy; + // add r3.xy, r0.yzzw, r3.xzzw + temp3.xy = temp0.yz + temp3.xz; + // add r0.yz, r1.xxyw, -r3.xxyw + temp0.yz = temp1.xy + -temp3.xy; + // mad r3.zw, c14.x, r0.xyyz, r3.xyxy + temp3.zw = expr14.xx * temp0.yz + temp3.xy; + // lrp r1, r0.x, r3, r2 + temp1 = lerp(temp2, temp3, temp0.x); + // mov oT0.xy, r1 + o.texcoord = temp1; + // mov oT1.xy, r1.zwzw + o.texcoord1 = temp1.zwzw; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float3 color : COLOR; + float2 texcoord2 : TEXCOORD2; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-1) + temp0.x = MultiTextureEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul r0.x, c1.x, c2.x + temp0.x = TexCoordTransformAngle_0.x * Time.x; + // mul r1.x, r0.x, (0.15915494309189535) + temp1.x = temp0.x * (0.15915494309189535); + // add r0.x, r1.x, (0.5) + temp0.x = temp1.x + (0.5); + // frc r1.x, r0.x + temp1.x = frac(temp0.x); + // mul r0.x, r1.x, (6.283185307179586) + temp0.x = temp1.x * (6.283185307179586); + // add r1.x, r0.x, (-3.141592653589793) + temp1.x = temp0.x + (-3.141592653589793); + // cos r0.x, r1.x + temp0.x = cos(temp1.x); + // sin r0.y, r1.x + temp0.y = sin(temp1.x); + // mov c11.x, r0.y + expr11.x = temp0.y; + // mov c12.x, r0.x + expr12.x = temp0.x; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3; + float addr0; + // def c0, 1, -1, 100, 0 + // def c1, 0.5, 1.5, 2.5, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_color v2 + // dcl_texcoord v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c22.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oD0.xyz, v2, c15 + o.color = i.color * ColorEmissive; + // mul oT2.xy, r0, c22 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // mov r0.x, c18.x + temp0.x = TexCoordTransformU_1.x; + // mov r0.y, c19.x + temp0.y = TexCoordTransformV_1.x; + // add r0.zw, -r0.xyxy, v3.xyxy + temp0.zw = -temp0.xy + i.texcoord.xy; + // mul r1.xy, r0.wzzw, c12.x + temp1.xy = temp0.wz * expr12.xx; + // mad r2.xy, r0.wzzw, c11.x, r1.yxzw + temp2.xy = temp0.wz * expr11.xx + temp1.yx; + // mad r2.zw, r0, -c11.x, r1.xyxy + temp2.zw = temp0.zw * -expr11.xx + temp1.xy; + // add r0.zw, r0.xyxy, r2.xywy + temp0.zw = temp0.xy + temp2.wy; + // add r1.xy, r0, r2.xzzw + temp1.xy = temp0.xy + temp2.xz; + // add r0.xy, r0.zwzw, -r1 + temp0.xy = temp0.zw + -temp1.xy; + // mad r1.zw, c14.x, r0.xyxy, r1.xyxy + temp1.zw = expr14.xx * temp0.xy + temp1.xy; + // mov r0.x, c20.x + temp0.x = TexCoordTransformU_2.x; + // mov r0.y, c21.x + temp0.y = TexCoordTransformV_2.x; + // add r0.zw, -r0.xyxy, v3.xyxy + temp0.zw = -temp0.xy + i.texcoord.xy; + // mul r2.xy, r0.wzzw, c12.x + temp2.xy = temp0.wz * expr12.xx; + // mad r3.xy, r0.wzzw, c11.x, r2.yxzw + temp3.xy = temp0.wz * expr11.xx + temp2.yx; + // mad r3.zw, r0, -c11.x, r2.xyxy + temp3.zw = temp0.zw * -expr11.xx + temp2.xy; + // add r0.zw, r0.xyxy, r3.xywy + temp0.zw = temp0.xy + temp3.wy; + // add r2.xy, r0, r3.xzzw + temp2.xy = temp0.xy + temp3.xz; + // add r0.xy, r0.zwzw, -r2 + temp0.xy = temp0.zw + -temp2.xy; + // mad r2.zw, c14.x, r0.xyxy, r2.xyxy + temp2.zw = expr14.xx * temp0.xy + temp2.xy; + // mul r0.x, v2.w, c0.z + temp0.x = i.color.w * float1(100); + // slt r0.xyz, r0.x, c1 + temp0.xyz = (temp0.xxx < float3(0.5, 1.5, 2.5)) ? 1 : 0; + // lrp r3, r0.z, r2, v3.xyxy + temp3 = lerp(i.texcoord.xyxy, temp2, temp0.z); + // lrp r2, r0.y, r1, r3 + temp2 = lerp(temp3, temp1, temp0.y); + // mov r0.y, c16.x + temp0.y = TexCoordTransformU_0.x; + // mov r0.z, c17.x + temp0.z = TexCoordTransformV_0.x; + // add r1.xy, -r0.yzzw, v3 + temp1.xy = -temp0.yz + i.texcoord.xy; + // mul r1.zw, r1.xyyx, c12.x + temp1.zw = temp1.yx * expr12.xx; + // mad r3.xy, r1.yxzw, c11.x, r1.wzzw + temp3.xy = temp1.yx * expr11.xx + temp1.wz; + // mad r3.zw, r1.xyxy, -c11.x, r1 + temp3.zw = temp1.xy * -expr11.xx + temp1.zw; + // add r1.xy, r0.yzzw, r3.wyzw + temp1.xy = temp0.yz + temp3.wy; + // add r3.xy, r0.yzzw, r3.xzzw + temp3.xy = temp0.yz + temp3.xz; + // add r0.yz, r1.xxyw, -r3.xxyw + temp0.yz = temp1.xy + -temp3.xy; + // mad r3.zw, c14.x, r0.xyyz, r3.xyxy + temp3.zw = expr14.xx * temp0.yz + temp3.xy; + // lrp r1, r0.x, r3, r2 + temp1 = lerp(temp2, temp3, temp0.x); + // mov oT0.xy, r1 + o.texcoord = temp1; + // mov oT1.xy, r1.zwzw + o.texcoord1 = temp1.zwzw; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_2_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float3 color : COLOR; + float2 texcoord2 : TEXCOORD2; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 2 + 0 - ConstOutput: 14 ConstInput 1 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-1) + temp0.x = MultiTextureEnable.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c14.x, r0.x, r1.x + expr14.x = temp0.x >= temp1.x; + // mul r0.x, c1.x, c2.x + temp0.x = TexCoordTransformAngle_0.x * Time.x; + // mul r1.x, r0.x, (0.15915494309189535) + temp1.x = temp0.x * (0.15915494309189535); + // add r0.x, r1.x, (0.5) + temp0.x = temp1.x + (0.5); + // frc r1.x, r0.x + temp1.x = frac(temp0.x); + // mul r0.x, r1.x, (6.283185307179586) + temp0.x = temp1.x * (6.283185307179586); + // add r1.x, r0.x, (-3.141592653589793) + temp1.x = temp0.x + (-3.141592653589793); + // cos r0.x, r1.x + temp0.x = cos(temp1.x); + // sin r0.y, r1.x + temp0.y = sin(temp1.x); + // mov c11.x, r0.y + expr11.x = temp0.y; + // mov c12.x, r0.x + expr12.x = temp0.x; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3; + float2 addr0; + // def c0, 0.5, 1.5, 2.5, 0 + // def c1, 1, -1, 100, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_color v4 + // dcl_texcoord v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c1.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c1.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c1.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c22.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oD0.xyz, v4, c15 + o.color = i.color * ColorEmissive; + // mul oT2.xy, r0, c22 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD1.x, c1.x + o.color1 = float4(1, 1, 1, 1); + // mov r0.x, c18.x + temp0.x = TexCoordTransformU_1.x; + // mov r0.y, c19.x + temp0.y = TexCoordTransformV_1.x; + // add r0.zw, -r0.xyxy, v5.xyxy + temp0.zw = -temp0.xy + i.texcoord.xy; + // mul r1.xy, r0.wzzw, c12.x + temp1.xy = temp0.wz * expr12.xx; + // mad r2.xy, r0.wzzw, c11.x, r1.yxzw + temp2.xy = temp0.wz * expr11.xx + temp1.yx; + // mad r2.zw, r0, -c11.x, r1.xyxy + temp2.zw = temp0.zw * -expr11.xx + temp1.xy; + // add r0.zw, r0.xyxy, r2.xywy + temp0.zw = temp0.xy + temp2.wy; + // add r1.xy, r0, r2.xzzw + temp1.xy = temp0.xy + temp2.xz; + // add r0.xy, r0.zwzw, -r1 + temp0.xy = temp0.zw + -temp1.xy; + // mad r1.zw, c14.x, r0.xyxy, r1.xyxy + temp1.zw = expr14.xx * temp0.xy + temp1.xy; + // mov r0.x, c20.x + temp0.x = TexCoordTransformU_2.x; + // mov r0.y, c21.x + temp0.y = TexCoordTransformV_2.x; + // add r0.zw, -r0.xyxy, v5.xyxy + temp0.zw = -temp0.xy + i.texcoord.xy; + // mul r2.xy, r0.wzzw, c12.x + temp2.xy = temp0.wz * expr12.xx; + // mad r3.xy, r0.wzzw, c11.x, r2.yxzw + temp3.xy = temp0.wz * expr11.xx + temp2.yx; + // mad r3.zw, r0, -c11.x, r2.xyxy + temp3.zw = temp0.zw * -expr11.xx + temp2.xy; + // add r0.zw, r0.xyxy, r3.xywy + temp0.zw = temp0.xy + temp3.wy; + // add r2.xy, r0, r3.xzzw + temp2.xy = temp0.xy + temp3.xz; + // add r0.xy, r0.zwzw, -r2 + temp0.xy = temp0.zw + -temp2.xy; + // mad r2.zw, c14.x, r0.xyxy, r2.xyxy + temp2.zw = expr14.xx * temp0.xy + temp2.xy; + // mul r0.x, v4.w, c1.z + temp0.x = i.color.w * float1(100); + // slt r0.xyz, r0.x, c0 + temp0.xyz = (temp0.xxx < float3(0.5, 1.5, 2.5)) ? 1 : 0; + // lrp r3, r0.z, r2, v5.xyxy + temp3 = lerp(i.texcoord.xyxy, temp2, temp0.z); + // lrp r2, r0.y, r1, r3 + temp2 = lerp(temp3, temp1, temp0.y); + // mov r0.y, c16.x + temp0.y = TexCoordTransformU_0.x; + // mov r0.z, c17.x + temp0.z = TexCoordTransformV_0.x; + // add r1.xy, -r0.yzzw, v5 + temp1.xy = -temp0.yz + i.texcoord.xy; + // mul r1.zw, r1.xyyx, c12.x + temp1.zw = temp1.yx * expr12.xx; + // mad r3.xy, r1.yxzw, c11.x, r1.wzzw + temp3.xy = temp1.yx * expr11.xx + temp1.wz; + // mad r3.zw, r1.xyxy, -c11.x, r1 + temp3.zw = temp1.xy * -expr11.xx + temp1.zw; + // add r1.xy, r0.yzzw, r3.wyzw + temp1.xy = temp0.yz + temp3.wy; + // add r3.xy, r0.yzzw, r3.xzzw + temp3.xy = temp0.yz + temp3.xz; + // add r0.yz, r1.xxyw, -r3.xxyw + temp0.yz = temp1.xy + -temp3.xy; + // mad r3.zw, c14.x, r0.xyyz, r3.xyxy + temp3.zw = expr14.xx * temp0.yz + temp3.xy; + // lrp r1, r0.x, r3, r2 + temp1 = lerp(temp2, temp3, temp0.x); + // mov oT0.xy, r1 + o.texcoord = temp1; + // mov oT1.xy, r1.zwzw + o.texcoord1 = temp1.zwzw; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_2_0 VS_Array_Shader_0(), // 30 + compile vs_2_0 VS_Array_Shader_1(), // 31 + compile vs_2_0 VS_Array_Shader_2(), // 32 +}; +// Multiply_M_PixelShader4 Pixel_2_0 Has PRES False +struct Multiply_M_PixelShader4_Input +{ + float3 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float4 Multiply_M_PixelShader4(Multiply_M_PixelShader4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, -1, 0, 0 + // dcl v0.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord1.xy); + // texld r2, t2, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mov r3.w, r1.w + temp3.w = temp1.w; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mad r0.xyz, r0, r1, c0.y + temp0.xyz = temp0.xyz * temp1.xyz + float3(-1, -1, -1); + // mad r1.xyz, r2, r0, c0.x + temp1.xyz = temp2.xyz * temp0.xyz + float3(1, 1, 1); + // mov r0.x, c0.x + temp0.x = float1(1); + // mul r1.w, r0.w, r0.x + temp1.w = temp0.w * temp0.x; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Multiply_M_Expression5 Expression_2_0 Has PRES False +float Multiply_M_Expression5() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Additive_M_PixelShader6 Pixel_2_0 Has PRES False +struct Additive_M_PixelShader6_Input +{ + float3 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float4 Additive_M_PixelShader6(Additive_M_PixelShader6_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 1, 0, 0, 0 + // dcl v0.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord1.xy); + // texld r2, t2, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mov r3.w, r1.w + temp3.w = temp1.w; + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mov r1.w, c0.x + temp1.w = float1(1); + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive_M_Expression7 Expression_2_0 Has PRES False +float Additive_M_Expression7() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Multiply_PixelShader8 Pixel_2_0 Has PRES False +struct Multiply_PixelShader8_Input +{ + float3 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float4 Multiply_PixelShader8(Multiply_PixelShader8_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 2.2, 1, -1, 0 + // dcl v0.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord1.xy); + // texld r2, t2, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // log r4.x, r0.x + temp4.x = log2(temp0.x); + // log r4.y, r0.y + temp4.y = log2(temp0.y); + // log r4.z, r0.z + temp4.z = log2(temp0.z); + // mul r4.xyz, r4, c0.x + temp4.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r4.x + temp0.x = exp2(temp4.x); + // exp r0.y, r4.y + temp0.y = exp2(temp4.y); + // exp r0.z, r4.z + temp0.z = exp2(temp4.z); + // mov r3.w, r1.w + temp3.w = temp1.w; + // mul r0, r3, r0 + temp0 = temp3 * temp0; + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r1.xyz, r3, c0.x + temp1.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r1.x + temp3.x = exp2(temp1.x); + // exp r3.y, r1.y + temp3.y = exp2(temp1.y); + // exp r3.z, r1.z + temp3.z = exp2(temp1.z); + // mad r0.xyz, r0, r3, c0.z + temp0.xyz = temp0.xyz * temp3.xyz + float3(-1, -1, -1); + // mad r1.xyz, r2, r0, c0.y + temp1.xyz = temp2.xyz * temp0.xyz + float3(1, 1, 1); + // mov r0.x, c0.y + temp0.x = float1(1); + // mul r1.w, r0.w, r0.x + temp1.w = temp0.w * temp0.x; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Multiply_Expression9 Expression_2_0 Has PRES False +float Multiply_Expression9() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Additive_PixelShader10 Pixel_2_0 Has PRES False +struct Additive_PixelShader10_Input +{ + float3 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float4 Additive_PixelShader10(Additive_PixelShader10_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 2.2, 1, 0, 0 + // dcl v0.xyz + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord1.xy); + // texld r2, t2, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // log r4.x, r0.x + temp4.x = log2(temp0.x); + // log r4.y, r0.y + temp4.y = log2(temp0.y); + // log r4.z, r0.z + temp4.z = log2(temp0.z); + // mul r4.xyz, r4, c0.x + temp4.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r4.x + temp0.x = exp2(temp4.x); + // exp r0.y, r4.y + temp0.y = exp2(temp4.y); + // exp r0.z, r4.z + temp0.z = exp2(temp4.z); + // mov r3.w, r1.w + temp3.w = temp1.w; + // mul r0, r3, r0 + temp0 = temp3 * temp0; + // mov r3.w, c0.y + temp3.w = float1(1); + // log r4.x, r1.x + temp4.x = log2(temp1.x); + // log r4.y, r1.y + temp4.y = log2(temp1.y); + // log r4.z, r1.z + temp4.z = log2(temp1.z); + // mul r1.xyz, r4, c0.x + temp1.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r1.x + temp3.x = exp2(temp1.x); + // exp r3.y, r1.y + temp3.y = exp2(temp1.y); + // exp r3.z, r1.z + temp3.z = exp2(temp1.z); + // mul r0, r0, r3 + temp0 = temp0 * temp3; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive_Expression11 Expression_2_0 Has PRES False +float Additive_Expression11() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Additive +{ + pass P0 + { + VertexShader = VS_Array[Additive_Expression11()]; // 33 + PixelShader = compile ps_2_0 Additive_PixelShader10(); // 34 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique Multiply +{ + pass P0 + { + VertexShader = VS_Array[Multiply_Expression9()]; // 35 + PixelShader = compile ps_2_0 Multiply_PixelShader8(); // 36 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + AlphaTestEnable = 0; + } +} + +technique Additive_M +{ + pass P0 + { + VertexShader = VS_Array[Additive_M_Expression7()]; // 37 + PixelShader = compile ps_2_0 Additive_M_PixelShader6(); // 38 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique Multiply_M +{ + pass P0 + { + VertexShader = VS_Array[Multiply_M_Expression5()]; // 39 + PixelShader = compile ps_2_0 Multiply_M_PixelShader4(); // 40 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + AlphaTestEnable = 0; + } +} + diff --git a/normalmapped.fx b/normalmapped.fx new file mode 100644 index 0000000..449e740 --- /dev/null +++ b/normalmapped.fx @@ -0,0 +1,2901 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 47 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 49 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 52 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale = { 1 }; +float3 AmbientColor : register(vs_2_0, c11) : register(vs_3_0, c11) = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor : register(vs_2_0, c12) : register(vs_3_0, c12) = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c13) : register(vs_3_0, c13) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 70 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 73 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * DiffuseColor.xyz; + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mad r3.xyz, r4, c11, r3 + temp3.xyz = temp4.xyz * AmbientColor.xyz + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c13 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 77 + compile vs_3_0 VS_H_Array_Shader_1(), // 78 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v0, s1 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, c12 + temp0.xyz = temp1.xyz * DiffuseColor.xyz; + // texld r2, v0, s2 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c0.y, c0.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xy, r2, c11.x + temp2.xy = temp2.xy * BumpScale.xx; + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mad r1.xyz, r1, v6, r3 + temp1.xyz = temp1.xyz * i.color.xyz + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r0, r2.w + temp3.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r0, r1 + temp0.xyz = temp3.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, -0, -1, -2, -3 + // def c3, 0.25, 0, 0, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, c13 + temp0.xyz = temp1.xyz * DiffuseColor.xyz; + // texld r2, v0, s3 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c0.y, c0.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xy, r2, c12.x + temp2.xy = temp2.xy * BumpScale.xx; + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, -c0.z, -c0.w + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c3.x + temp1.w = temp1.w * float1(0.25); + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mad r1.xyz, r1, v7, r3 + temp1.xyz = temp1.xyz * i.color.xyz + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r0, r2.w + temp3.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, -c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r0, r1 + temp0.xyz = temp3.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s4 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v0, s1 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, c12 + temp0.xyz = temp1.xyz * DiffuseColor.xyz; + // texld r2, v0, s2 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c0.y, c0.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xy, r2, c11.x + temp2.xy = temp2.xy * BumpScale.xx; + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mad r1.xyz, r1, v6, r3 + temp1.xyz = temp1.xyz * i.color.xyz + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r0, r2.w + temp3.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r0, r1 + temp0.xyz = temp3.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s3 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, -0, -1, -2, -3 + // def c3, 0.25, 0, 0, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, c13 + temp0.xyz = temp1.xyz * DiffuseColor.xyz; + // texld r2, v0, s3 + temp2 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r2.xyz, r2, c0.y, c0.z + temp2.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r2.xy, r2, c12.x + temp2.xy = temp2.xy * BumpScale.xx; + // dp3 r3.x, r2, v1 + temp3.x = dot(temp2.xyz, i.texcoord1.xyz); + // dp3 r3.y, r2, v2 + temp3.y = dot(temp2.xyz, i.texcoord2.xyz); + // dp3 r3.z, r2, v3 + temp3.z = dot(temp2.xyz, i.texcoord3.xyz); + // nrm r2.xyz, r3 + temp2.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, -c0.z, -c0.w + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c3.x + temp1.w = temp1.w * float1(0.25); + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r2, c6 + temp1.w = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mad r1.xyz, r1, v7, r3 + temp1.xyz = temp1.xyz * i.color.xyz + temp3.xyz; + // dp3 r1.w, r2, c8 + temp1.w = dot(temp2.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r0, r2.w + temp3.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, -c0.w + temp3.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r0, r1 + temp0.xyz = temp3.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s4 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 79 + compile ps_3_0 PS_H_Array_Shader_1(), // 80 + compile ps_3_0 PS_H_Array_Shader_2(), // 81 + compile ps_3_0 PS_H_Array_Shader_3(), // 82 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r2, c11, r0 + temp0.xyz = temp2.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c13 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c14.x + temp0.xy = temp0.xz * expr14.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c14.x + temp1.xy = temp1.xy * expr14.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 86 + compile vs_3_0 VS_M_Array_Shader_1(), // 87 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c11.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.z, c0.w + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c14.x + temp1.z = pow(temp0.w, SpecularExponent.x); + // cmp r0.w, -r1.x, c0.z, c0.w + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // mul_pp r1.yzw, r0.w, c13.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp0.www * SpecularColor.xyz; + // mul_pp r2.xyz, r0, c12 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s3 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.w, c0.z + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.x + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c12.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.z, c0.w + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c15.x + temp2.x = pow(temp1.x, SpecularExponent.x); + // cmp r1.x, -r1.y, c0.z, c0.w + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // mul_pp r1.yzw, r1.y, c14.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp1.yyy * SpecularColor.xyz; + // mul_pp r2.xyz, r0, c13 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c11.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.z, c0.w + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c14.x + temp1.z = pow(temp0.w, SpecularExponent.x); + // cmp r0.w, -r1.x, c0.z, c0.w + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // mul_pp r1.yzw, r0.w, c13.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp0.www * SpecularColor.xyz; + // mul_pp r2.xyz, r0, c12 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s3 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.w, c0.z + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.x + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c12.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.z, c0.w + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c15.x + temp2.x = pow(temp1.x, SpecularExponent.x); + // cmp r1.x, -r1.y, c0.z, c0.w + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // mul_pp r1.yzw, r1.y, c14.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp1.yyy * SpecularColor.xyz; + // mul_pp r2.xyz, r0, c13 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 88 + compile ps_3_0 PS_M_Array_Shader_1(), // 89 + compile ps_3_0 PS_M_Array_Shader_2(), // 90 + compile ps_3_0 PS_M_Array_Shader_3(), // 91 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c13.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 95 + compile vs_2_0 VS_L_Array_Shader_1(), // 96 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 97 + compile ps_2_0 PS_L_Array_Shader_1(), // 98 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 102 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 103 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 104 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 105 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 84 + PixelShader = PS_H_Array[Default_Expression26()]; // 85 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 93 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 94 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 100 + PixelShader = ; // 101 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 106 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 107 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsallied.fx b/objectsallied.fx new file mode 100644 index 0000000..7555cf6 --- /dev/null +++ b/objectsallied.fx @@ -0,0 +1,3045 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 49 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 51 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 54 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 59 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 69 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 72 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.1, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mov r1.z, c0.z + temp1.z = float1(0.1); + // mad r0.xyz, c4, r1.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp1.zzz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.5, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mov r2.w, c0.w + temp2.w = float1(0.1); + // mad r3.xyz, c4, r2.w, r3 + temp3.xyz = AmbientLightColor.xyz * temp2.www + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 76 + compile vs_3_0 VS_H_Array_Shader_1(), // 77 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v0, s4 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.x, c0.x + temp6.x = float1(0); + // cmp r6.yzw, -r4_abs.x, c89.xxyz, r6.x + temp6.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r6.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.xxx; + // cmp r8.xy, -r4_abs.x, c91, r6.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6.yzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.yzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -1.5 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r3, v0, s5 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r0, -r2.w, r1 + temp1.xyz = temp0.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // def c4, 2, 2.2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c4.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c4.x, c4.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c4.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r2.yzww, v6, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c4.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.x, c1.x + temp2.x = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.x + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r2.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.xxx; + // cmp r8.xy, -r4_abs.x, c91, r2.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c4.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.x + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c1, 1, 0, 0.25, 0 + // def c3, 2, 2.2, -1, -1.5 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c3.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c3.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.x, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r3.x, r1, r0 + temp3.x = dot(temp1.xyz, temp0.xyz); + // add r3.x, r3.x, r3.x + temp3.x = temp3.x + temp3.x; + // mad r1.xyz, r0, -r3.x, r1 + temp1.xyz = temp0.xyz * -temp3.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2.yzww, v7, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c9 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c3.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.y + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 78 + compile ps_3_0 PS_H_Array_Shader_1(), // 79 + compile ps_3_0 PS_H_Array_Shader_2(), // 80 + compile ps_3_0 PS_H_Array_Shader_3(), // 81 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 1, 0, 0.1, -1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mov r2.xzw, c0 + temp2.xzw = float3(1, 0.1, -1); + // mad r0.xyz, c4, r2.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp2.zzz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xy, r2.xwzw, c12.x + temp0.xy = temp2.xw * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mov r2.xyw, c0 + temp2.xyw = float3(1, -1, 0.1); + // mad r1.xyz, c4, r2.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp2.www + temp1.xyz; + // slt r2.z, v4.x, -v4.x + temp2.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.w, v4.x + temp2.w = frac(i.blendindices.x); + // add r3.x, -r2.w, v4.x + temp3.x = -temp2.w + i.blendindices.x; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r2.z, r2.z, r2.w, r3.x + temp2.z = temp2.z * temp2.w + temp3.x; + // add r2.z, r2.z, r2.z + temp2.z = temp2.z + temp2.z; + // mova a0.x, r2.z + addr0.x = temp2.z; + // mul r3.w, v6.w, c129[a0.x].w + temp3.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r3.xyz, v6 + temp3.xyz = i.color.xyz; + // mul o7, r1, r3 + o.color = temp1 * temp3; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r1.xy, r2, c12.x + temp1.xy = temp2.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 85 + compile vs_3_0 VS_M_Array_Shader_1(), // 86 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.x, c0.y + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c0.z + temp1.z = pow(temp0.w, float1(50)); + // cmp r0.w, -r1.x, c0.x, c0.y + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.y, r2.x, c1.x + temp1.y = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.y, c0.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, -c1.z, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c0.w + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.x, c0.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c0.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c0.x, c0.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.w, r2.x, c1.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r1.y, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.y * temp0.w; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 50, 0 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c3.y, c3.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c3.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v4 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c1.x, c1.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c1.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c1.x, c1.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.x, r2.x, r1.x + temp1.x = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r0.w, r0.w, r1.x + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.x; + // mad_pp r1.xyz, r0, r1.y, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.yyy + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 50, 0.25 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c1.y, c1.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.x, -c3.z, r1 + temp1.x = dot(float4(1, 1, 1, 1), temp1); + // mul r1.x, r1.x, c1.w + temp1.x = temp1.x * float1(0.25); + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.yzw, r2.xxyz, c3.y, c3.z + temp1.yzw = /* not implemented _pp modifier */ temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.yzw, r1, -c3.xwwz + temp1.yzw = /* not implemented _pp modifier */ temp1.yzw * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1.yzww + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.yzww.xyz).xyz; + // dp3_pp r1.y, r2, v1 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.z, r2, v5 + temp1.z = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.w, -r1.y, c1.x, c1.y + temp1.w = (-temp1.y >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.y, c1.z + temp2.x = pow(temp1.y, float1(50)); + // cmp r1.y, -r1.z, c1.x, c1.y + temp1.y = (-temp1.z >= 0) ? float1(0) : float1(1); + // mul_pp r2.y, r1.z, r1.y + temp2.y = /* not implemented _pp modifier */ temp1.z * temp1.y; + // mul r1.y, r1.w, r1.y + temp1.y = temp1.w * temp1.y; + // mul_pp r2.z, r2.x, r1.y + temp2.z = /* not implemented _pp modifier */ temp2.x * temp1.y; + // mul_pp r1.xy, r1.x, r2.yzzw + temp1.xy = /* not implemented _pp modifier */ temp1.xx * temp2.yz; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 87 + compile ps_3_0 PS_M_Array_Shader_1(), // 88 + compile ps_3_0 PS_M_Array_Shader_2(), // 89 + compile ps_3_0 PS_M_Array_Shader_3(), // 90 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mov r0.z, c0.z + temp0.z = float1(0.1); + // mad r1.xyz, c4, r0.z, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.zzz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0.1 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mov r0.w, c0.w + temp0.w = float1(0.1); + // mad r1.xyz, c4, r0.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.www + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 94 + compile vs_2_0 VS_L_Array_Shader_1(), // 95 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s1 + temp0 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r3.xyz, r1, c0 + temp3.xyz = temp1.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r1 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r0.xyz, r0.z, r3, r1 + temp0.xyz = temp0.zzz * temp3.xyz + temp1.xyz; + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 96 + compile ps_2_0 PS_L_Array_Shader_1(), // 97 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 101 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 102 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 103 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 104 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression24 Expression_2_0 Has PRES False +float Default_L_Expression24() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression26 Expression_2_0 Has PRES False +float Default_M_Expression26() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression28()]; // 83 + PixelShader = PS_H_Array[Default_Expression27()]; // 84 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression26()]; // 92 + PixelShader = PS_M_Array[Default_M_Expression25()]; // 93 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression24()]; // 99 + PixelShader = PS_L_Array[Default_L_Expression23()]; // 100 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 105 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 106 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsalliedtread.fx b/objectsalliedtread.fx new file mode 100644 index 0000000..44dfa73 --- /dev/null +++ b/objectsalliedtread.fx @@ -0,0 +1,3068 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 49 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 51 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 54 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 59 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 69 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 72 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.1, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // mov r0.w, v5.w + temp0.w = i.color.w; + // add o1.xw, r0.w, v4.x + o.texcoord.xw = temp0.w + i.texcoord.x; + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mov r1.z, c0.z + temp1.z = float1(0.1); + // mad r0.xyz, c4, r1.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp1.zzz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o8, r0, c0.wwwx + o.color = temp0 * float4(0.5, 0.5, 0.5, 1); + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.yz, v4.y + o.texcoord.yz = i.texcoord.y; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.5, 1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.w, v6.w + temp0.w = i.color.w; + // mad o1.xw, r0.w, c129[a0.x].w, v5.x + o.texcoord.xw = temp0.w * WorldBones[1 + addr0.x].w + i.texcoord.x; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // add r1.x, v4.x, v4.x + temp1.x = i.blendindices.x + i.blendindices.x; + // frc r1.y, r1.x + temp1.y = frac(temp1.x); + // add r1.z, r1.x, -r1.y + temp1.z = temp1.x + -temp1.y; + // slt r1.y, -r1.y, r1.y + temp1.y = (-temp1.y < temp1.y) ? 1 : 0; + // slt r1.x, r1.x, -r1.x + temp1.x = (temp1.x < -temp1.x) ? 1 : 0; + // mad r1.x, r1.x, r1.y, r1.z + temp1.x = temp1.x * temp1.y + temp1.z; + // mova a0.x, r1.x + addr0.x = temp1.x; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r1.w, r1, c10 + temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r1.w, r1.w, c0.z + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r1.w, c9 + temp2.xyz = temp1.www * DirectionalLight[2].Color.xyz; + // mov r1.w, c0.w + temp1.w = float1(0.1); + // mad r2.xyz, c4, r1.w, r2 + temp2.xyz = AmbientLightColor.xyz * temp1.www + temp2.xyz; + // mul r0.xyz, r2, v6 + temp0.xyz = temp2.xyz * i.color.xyz; + // mul o8, r0, c2.xxxy + o.color = temp0 * float4(0.5, 0.5, 0.5, 1); + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r2, v0.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r2 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r0.w, c128[a0.x] + temp2.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r0, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r0.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp2.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r2 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp2.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r2.xy, r0, c11.zwzw + temp2.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r2, c11 + o.texcoord6.xy = temp2.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o7.zw, r2.xyxy, c118.xyxy + o.texcoord6.zw = temp2.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.yz, v5.y + o.texcoord.yz = i.texcoord.y; + // mul r2, v3.zxyy, c128[a0.x].yzxy + temp2 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // mov o2.x, -r2.x + o.texcoord1.x = -temp2.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r1.x + o.texcoord1.z = temp1.x; + // mov o3.x, -r2.y + o.texcoord2.x = -temp2.y; + // mov o4.x, -r2.z + o.texcoord3.x = -temp2.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r1.y + o.texcoord2.z = temp1.y; + // mov o4.z, r1.z + o.texcoord3.z = temp1.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.zzww + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 76 + compile vs_3_0 VS_H_Array_Shader_1(), // 77 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v0, s4 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.x, c0.x + temp6.x = float1(0); + // cmp r6.yzw, -r4_abs.x, c89.xxyz, r6.x + temp6.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r6.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.xxx; + // cmp r8.xy, -r4_abs.x, c91, r6.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6.yzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.yzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -1.5 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r3, v0, s5 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r0, -r2.w, r1 + temp1.xyz = temp0.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // def c4, 2, 2.2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c4.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c4.x, c4.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c4.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r2.yzww, v6, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c4.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.x, c1.x + temp2.x = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.x + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r2.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.xxx; + // cmp r8.xy, -r4_abs.x, c91, r2.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c4.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.x + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c1, 1, 0, 0.25, 0 + // def c3, 2, 2.2, -1, -1.5 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c3.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c3.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.x, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r3.x, r1, r0 + temp3.x = dot(temp1.xyz, temp0.xyz); + // add r3.x, r3.x, r3.x + temp3.x = temp3.x + temp3.x; + // mad r1.xyz, r0, -r3.x, r1 + temp1.xyz = temp0.xyz * -temp3.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2.yzww, v7, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c9 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c3.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.y + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 78 + compile ps_3_0 PS_H_Array_Shader_1(), // 79 + compile ps_3_0 PS_H_Array_Shader_2(), // 80 + compile ps_3_0 PS_H_Array_Shader_3(), // 81 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 0, -0.0015, 0, 0 + // def c2, 1, 0, 0.1, -1 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mov r0.w, v5.w + temp0.w = i.color.w; + // add o1.xw, r0.w, v4.x + o.texcoord.xw = temp0.w + i.texcoord.x; + // mad r0, v0.xyzx, c2.xxxy, c2.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c2.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c2.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c2.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mov r2.xzw, c2 + temp2.xzw = float3(1, 0.1, -1); + // mad r0.xyz, c4, r2.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp2.zzz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r3, v5.xyzx, c2.xxxy, c2.yyyx + temp3 = i.color.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // mul o7, r0, r3 + o.color = temp0 * temp3; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xy, r2.xwzw, c12.x + temp0.xy = temp2.xw * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.yz, v4.y + o.texcoord.yz = i.texcoord.y; + // mov o2.w, c2.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.xxyw + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.w, v6.w + temp0.w = i.color.w; + // mad o1.xw, r0.w, c129[a0.x].w, v5.x + o.texcoord.xw = temp0.w * WorldBones[1 + addr0.x].w + i.texcoord.x; + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mov r2.xyw, c0 + temp2.xyw = float3(1, -1, 0.1); + // mad r1.xyz, c4, r2.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp2.www + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mad r3, v6.xyzx, c0.xxxz, c0.zzzx + temp3 = i.color.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // mul o7, r1, r3 + o.color = temp1 * temp3; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r1.xy, r2, c12.x + temp1.xy = temp2.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.yz, v5.y + o.texcoord.yz = i.texcoord.y; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 85 + compile vs_3_0 VS_M_Array_Shader_1(), // 86 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.x, c0.y + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c0.z + temp1.z = pow(temp0.w, float1(50)); + // cmp r0.w, -r1.x, c0.x, c0.y + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.y, r2.x, c1.x + temp1.y = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.y, c0.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, -c1.z, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c0.w + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.x, c0.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c0.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c0.x, c0.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.w, r2.x, c1.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r1.y, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.y * temp0.w; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 50, 0 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c3.y, c3.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c3.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v4 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c1.x, c1.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c1.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c1.x, c1.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.x, r2.x, r1.x + temp1.x = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r0.w, r0.w, r1.x + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.x; + // mad_pp r1.xyz, r0, r1.y, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.yyy + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 50, 0.25 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c1.y, c1.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.x, -c3.z, r1 + temp1.x = dot(float4(1, 1, 1, 1), temp1); + // mul r1.x, r1.x, c1.w + temp1.x = temp1.x * float1(0.25); + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.yzw, r2.xxyz, c3.y, c3.z + temp1.yzw = /* not implemented _pp modifier */ temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.yzw, r1, -c3.xwwz + temp1.yzw = /* not implemented _pp modifier */ temp1.yzw * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1.yzww + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.yzww.xyz).xyz; + // dp3_pp r1.y, r2, v1 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.z, r2, v5 + temp1.z = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.w, -r1.y, c1.x, c1.y + temp1.w = (-temp1.y >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.y, c1.z + temp2.x = pow(temp1.y, float1(50)); + // cmp r1.y, -r1.z, c1.x, c1.y + temp1.y = (-temp1.z >= 0) ? float1(0) : float1(1); + // mul_pp r2.y, r1.z, r1.y + temp2.y = /* not implemented _pp modifier */ temp1.z * temp1.y; + // mul r1.y, r1.w, r1.y + temp1.y = temp1.w * temp1.y; + // mul_pp r2.z, r2.x, r1.y + temp2.z = /* not implemented _pp modifier */ temp2.x * temp1.y; + // mul_pp r1.xy, r1.x, r2.yzzw + temp1.xy = /* not implemented _pp modifier */ temp1.xx * temp2.yz; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 87 + compile ps_3_0 PS_M_Array_Shader_1(), // 88 + compile ps_3_0 PS_M_Array_Shader_2(), // 89 + compile ps_3_0 PS_M_Array_Shader_3(), // 90 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mov r0.w, v3.w + temp0.w = i.color.w; + // add oT0.xw, r0.w, v2.x + o.texcoord.xw = temp0.w + i.texcoord.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mov r0.z, c0.z + temp0.z = float1(0.1); + // mad r1.xyz, c4, r0.z, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.zzz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mad r2, v3.xyzx, c0.xxxy, c0.yyyx + temp2 = i.color.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.yz, v2.y + o.texcoord.yz = i.texcoord.y; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 texcoord : TEXCOORD; + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0.1 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // slt r0.x, v2.x, -v2.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v2.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v2.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.w, v4.w + temp0.w = i.color.w; + // mad oT0.xw, r0.w, c129[a0.x].w, v3.x + o.texcoord.xw = temp0.w * WorldBones[1 + addr0.x].w + i.texcoord.x; + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mov r0.w, c0.w + temp0.w = float1(0.1); + // mad r1.xyz, c4, r0.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.www + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mad r2, v4.xyzx, c0.xxxz, c0.zzzx + temp2 = i.color.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.yz, v3.y + o.texcoord.yz = i.texcoord.y; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 94 + compile vs_2_0 VS_L_Array_Shader_1(), // 95 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s1 + temp0 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r3.xyz, r1, c0 + temp3.xyz = temp1.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r1 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r0.xyz, r0.z, r3, r1 + temp0.xyz = temp0.zzz * temp3.xyz + temp1.xyz; + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 96 + compile ps_2_0 PS_L_Array_Shader_1(), // 97 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mov r0.x, v1.x + temp0.x = i.texcoord.x; + // add oT0.x, r0.x, v2.w + o.texcoord.x = temp0.x + i.color.w; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mov oT0.y, v1.y + o.texcoord.y = i.texcoord.y; + // mov oD0.x, c1.x + o.color = OpacityOverride.x; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mov r0.x, v2.x + temp0.x = i.texcoord.x; + // mad oT0.x, v3.w, c129[a0.x].w, r0.x + o.texcoord.x = i.color.w * WorldBones[1 + addr0.x].w + temp0.x; + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // mov oT0.y, v2.y + o.texcoord.y = i.texcoord.y; + // mov oD0.x, c1.x + o.color = OpacityOverride.x; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 101 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 102 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 103 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 104 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression24 Expression_2_0 Has PRES False +float Default_L_Expression24() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression26 Expression_2_0 Has PRES False +float Default_M_Expression26() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression28()]; // 83 + PixelShader = PS_H_Array[Default_Expression27()]; // 84 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression26()]; // 92 + PixelShader = PS_M_Array[Default_M_Expression25()]; // 93 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression24()]; // 99 + PixelShader = PS_L_Array[Default_L_Expression23()]; // 100 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 105 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 106 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectschronorift.fx b/objectschronorift.fx new file mode 100644 index 0000000..425674b --- /dev/null +++ b/objectschronorift.fx @@ -0,0 +1,2382 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture ChronoRiftTexture ; // 47 +sampler2D ChronoRiftTextureSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 50 + MipFilter = 2; + MinFilter = 2; + MagFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 54 +sampler2D DiffuseTextureSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 59 +sampler2D NormalMapSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale : register(ps_3_0, c11) = { 1 }; +float3 AmbientColor = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 77 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 80 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 o2.z, v1, c124 + o.texcoord1.z = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 o3.z, v1, c125 + o.texcoord2.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 o4.z, v1, c126 + o.texcoord3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mov o6.w, r1.x + o.texcoord5.w = temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.z, r1.x, r1.y, c0.z + o.texcoord5.z = temp1.x * temp1.y + float1(-0.0015); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1, r0.xyxy, c0.w, v4.xyxy + temp1 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r2, r1, c1.xyzx + temp2 = temp1 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // mul r1, r1, c1.xzyx + temp1 = temp1 * float4(0.43019223, -0.6143571, 0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // add o1.x, r0.w, c12.x + o.texcoord.x = temp0.w + expr12.x; + // add o1.w, r1.w, r1.z + o.texcoord.w = temp1.w + temp1.z; + // add r0.w, r1.y, r1.x + temp0.w = temp1.y + temp1.x; + // add o1.z, r0.w, c12.x + o.texcoord.z = temp0.w + expr12.x; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // mad r0.xy, r0, c117, -r1 + temp0.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o6.xy, v4 + o.texcoord5.xy = i.texcoord.xy; + // mov o8, c0.y + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3; + float addr0; + // def c0, 1, -1, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mov o6.w, r1.x + o.texcoord5.w = temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.z, r1.x, r1.y, c0.z + o.texcoord5.z = temp1.x * temp1.y + float1(-0.0015); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1.xy, r0.yxzw, c0.w, v5.yxzw + temp1.xy = temp0.yx * float2(0.003, 0.003) + i.texcoord.yx; + // mul r2, r1.yxyx, c1.xyzx + temp2 = temp1.yxyx * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // mad o1.w, r1.y, c1.y, r2.w + o.texcoord.w = temp1.y * float1(0.6143571) + temp2.w; + // add o1.x, r0.w, c12.x + o.texcoord.x = temp0.w + expr12.x; + // mul r0.w, r1.x, c1.z + temp0.w = temp1.x * float1(-0.6143571); + // mad r0.w, r1.y, c1.x, r0.w + temp0.w = temp1.y * float1(0.43019223) + temp0.w; + // add o1.z, r0.w, c12.x + o.texcoord.z = temp0.w + expr12.x; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r0, v3.zxyy, c128[a0.x].yzxy + temp0 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.x].zxyz + temp1 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov o2.y, -r1.x + o.texcoord1.y = -temp1.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r0.y + o.texcoord2.x = -temp0.y; + // mov o4.x, -r0.z + o.texcoord3.x = -temp0.z; + // mov o3.y, -r1.y + o.texcoord2.y = -temp1.y; + // mov o4.y, -r1.z + o.texcoord3.y = -temp1.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o6.xy, v5 + o.texcoord5.xy = i.texcoord.xy; + // mov o8, c1.w + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 84 + compile vs_3_0 VS_H_Array_Shader_1(), // 85 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 1 + // def c1, 0.3, 0.6, 3, 50 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, v0, v0 + temp0.xy = i.texcoord.xy + i.texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xy, v0.wzzw, v0.wzzw + temp0.xy = i.texcoord.wz + i.texcoord.wz; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // texld r1, v5, s1 + temp1 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c1.w, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.x + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mul r0.xyz, r1, c2 + temp0.xyz = temp1.xyz * TintColor.xyz; + // texld r1, v6, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c0.w + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 1 + // def c1, 0.3, 0.6, 3, 50 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, v0, v0 + temp0.xy = i.texcoord.xy + i.texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xy, v0.wzzw, v0.wzzw + temp0.xy = i.texcoord.wz + i.texcoord.wz; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // texld r1, v5, s1 + temp1 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c1.w, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.x + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mul r0.xyz, r1, c2 + temp0.xyz = temp1.xyz * TintColor.xyz; + // texld r1, v6, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c0.w + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 1 + // def c1, 0.3, 0.6, 3, 50 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, v0, v0 + temp0.xy = i.texcoord.xy + i.texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xy, v0.wzzw, v0.wzzw + temp0.xy = i.texcoord.wz + i.texcoord.wz; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // texld r1, v5, s1 + temp1 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c1.w, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.x + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mul r0.xyz, r1, c2 + temp0.xyz = temp1.xyz * TintColor.xyz; + // texld r1, v6, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c0.w + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 1 + // def c1, 0.3, 0.6, 3, 50 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, v0, v0 + temp0.xy = i.texcoord.xy + i.texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // add r0.xy, v0.wzzw, v0.wzzw + temp0.xy = i.texcoord.wz + i.texcoord.wz; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // texld r1, v5, s1 + temp1 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(0.3, 0.6, 3); + // mad r0.xyz, r0, c1.w, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c0.x + temp1.xyz = min(temp0.xyz, float3(2, 2, 2)); + // mul r0.xyz, r1, c2 + temp0.xyz = temp1.xyz * TintColor.xyz; + // texld r1, v6, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c0.w + out_color.w = float1(1); + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 86 + compile ps_3_0 PS_H_Array_Shader_1(), // 87 + compile ps_3_0 PS_H_Array_Shader_2(), // 88 + compile ps_3_0 PS_H_Array_Shader_3(), // 89 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul c11.x, c1.x, (0.3) + expr11.x = Time.x * (0.3); + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5, temp6; + // def c0, 1, 0, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // def c2, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_texcoord6 o7.xyz + // dcl_color o8 + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r1.x, v3, c124 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v3, c125 + temp1.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v3, c126 + temp1.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r5.xyz, r4, r1.w, c6 + temp5.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // mul r4.xyz, r4, r1.w + temp4.xyz = temp4.xyz * temp1.www; + // dp3 r6.x, r5, -r1 + temp6.x = dot(temp5.xyz, -temp1.xyz); + // dp3 o7.x, r4, -r1 + o.texcoord6.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r6.y, r5, -r2 + temp6.y = dot(temp5.xyz, -temp2.xyz); + // dp3 o7.y, r4, -r2 + o.texcoord6.y = dot(temp4.xyz, -temp2.xyz); + // dp3 o7.z, r4, r3 + o.texcoord6.z = dot(temp4.xyz, temp3.xyz); + // dp3 r6.z, r5, r3 + temp6.z = dot(temp5.xyz, temp3.xyz); + // dp3 r1.x, r6, r6 + temp1.x = dot(temp6.xyz, temp6.xyz); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // mul o3.xyz, r6, r1.x + o.texcoord2 = temp6 * temp1.x; + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.w, r0, c115 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mul r1.yz, r0.z, c117.xzww + temp1.yz = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // rcp r0.z, r1.x + temp0.z = 1.0f / temp1.x; + // mov o5.w, r1.x + o.texcoord4.w = temp1.x; + // mad o5.z, r0.w, r0.z, c0.z + o.texcoord4.z = temp0.w * temp0.z + float1(-0.0015); + // mad r2, r0.xyxy, c0.w, v4.xyxy + temp2 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r3, r2, c1.xyzx + temp3 = temp2 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // mul r2, r2, c1.xzyx + temp2 = temp2 * float4(0.43019223, -0.6143571, 0.6143571, 0.43019223); + // add o1.y, r3.w, r3.z + o.texcoord.y = temp3.w + temp3.z; + // add r0.z, r3.y, r3.x + temp0.z = temp3.y + temp3.x; + // add o1.x, r0.z, c11.x + o.texcoord.x = temp0.z + expr11.x; + // add o1.w, r2.w, r2.z + o.texcoord.w = temp2.w + temp2.z; + // add r0.z, r2.y, r2.x + temp0.z = temp2.y + temp2.x; + // add o1.z, r0.z, c11.x + o.texcoord.z = temp0.z + expr11.x; + // add r0.zw, r0.xyxy, c13 + temp0.zw = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0.zwzw, c13 + o.texcoord3.xy = temp0.zw * Shroud.ScaleUV_OffsetUV.xy; + // mad r0.zw, r0.xyxy, c117.xyxy, -r1.xyyz + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.yz; + // add o4.zw, r0, c118.xyxy + o.texcoord3.zw = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mov r1.x, c12.x + temp1.x = expr12.x; + // mul r0.zw, r1.x, c2.xyxy + temp0.zw = temp1.xx * float2(1, -1); + // mul o6.xy, r0, r0.zwzw + o.texcoord5 = temp0 * temp0.zwzw; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // mov o5.xy, v4 + o.texcoord4.xy = i.texcoord.xy; + // mov o8, c0.y + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul c11.x, c1.x, (0.3) + expr11.x = Time.x * (0.3); + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + float3 temp5, temp6; + // def c0, 1, -1, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_texcoord6 o7.xyz + // dcl_color o8 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r5.xyz, r4, r1.w, c6 + temp5.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // mul r4.xyz, r4, r1.w + temp4.xyz = temp4.xyz * temp1.www; + // dp3 r6.x, r5, -r1 + temp6.x = dot(temp5.xyz, -temp1.xyz); + // dp3 o7.x, r4, -r1 + o.texcoord6.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r6.y, r5, -r2 + temp6.y = dot(temp5.xyz, -temp2.xyz); + // dp3 o7.y, r4, -r2 + o.texcoord6.y = dot(temp4.xyz, -temp2.xyz); + // dp3 o7.z, r4, r3 + o.texcoord6.z = dot(temp4.xyz, temp3.xyz); + // dp3 r6.z, r5, r3 + temp6.z = dot(temp5.xyz, temp3.xyz); + // dp3 r1.x, r6, r6 + temp1.x = dot(temp6.xyz, temp6.xyz); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // mul o3.xyz, r6, r1.x + o.texcoord2 = temp6 * temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r0.w + temp1.y = 1.0f / temp0.w; + // mov o5.w, r0.w + o.texcoord4.w = temp0.w; + // mad o5.z, r1.x, r1.y, c0.z + o.texcoord4.z = temp1.x * temp1.y + float1(-0.0015); + // mad r1.xy, r0.yxzw, c0.w, v5.yxzw + temp1.xy = temp0.yx * float2(0.003, 0.003) + i.texcoord.yx; + // mul r2, r1.yxyx, c1.xyzx + temp2 = temp1.yxyx * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // mad o1.w, r1.y, c1.y, r2.w + o.texcoord.w = temp1.y * float1(0.6143571) + temp2.w; + // add o1.x, r0.w, c11.x + o.texcoord.x = temp0.w + expr11.x; + // mul r0.w, r1.x, c1.z + temp0.w = temp1.x * float1(-0.6143571); + // mad r0.w, r1.y, c1.x, r0.w + temp0.w = temp1.y * float1(0.43019223) + temp0.w; + // add o1.z, r0.w, c11.x + o.texcoord.z = temp0.w + expr11.x; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add o4.zw, r0, c118.xyxy + o.texcoord3.zw = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r0.zw, r1.xyxy, c12.x + temp0.zw = temp1.xy * expr12.xx; + // mul o6.xy, r0, r0.zwzw + o.texcoord5 = temp0 * temp0.zwzw; + // mov o2.w, c1.w + o.texcoord1.w = float1(0); + // mov o5.xy, v5 + o.texcoord4.xy = i.texcoord.xy; + // mov o8, c1.w + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 92 + compile vs_3_0 VS_M_Array_Shader_1(), // 93 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 1, 0 + // def c1, 0.3, 0.6, 3, 0 + // dcl_texcoord v0 + // dcl_texcoord3 v1.xy + // dcl_texcoord4 v2.xy + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v2, s1 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v3, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // add_pp r0.yz, v0.xxyw, v0.xxyw + temp0.yz = /* not implemented _pp modifier */ i.texcoord.xy + i.texcoord.xy; + // texld r1, r0.yzzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(ChronoRiftTextureSampler, temp0.yz); + // add_pp r0.yz, v0.xwzw, v0.xwzw + temp0.yz = /* not implemented _pp modifier */ i.texcoord.wz + i.texcoord.wz; + // texld r2, r0.yzzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(ChronoRiftTextureSampler, temp0.yz); + // mul_pp r0.yzw, r1.xxyz, r2.xxyz + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * temp2.xyz; + // add_pp r0.yzw, r0, r0 + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw + temp0.yzw; + // mad_pp r0.xyz, r0.x, c1, r0.yzww + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.3, 0.6, 3) + temp0.yzw; + // min_pp r1.xyz, r0, c0.x + temp1.xyz = /* not implemented _pp modifier */ min(temp0.xyz, float3(2, 2, 2)); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.z + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 1, 0 + // def c1, 0.3, 0.6, 3, 0 + // dcl_texcoord v0 + // dcl_texcoord3 v1.xy + // dcl_texcoord4 v2.xy + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v2, s1 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v3, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // add_pp r0.yz, v0.xxyw, v0.xxyw + temp0.yz = /* not implemented _pp modifier */ i.texcoord.xy + i.texcoord.xy; + // texld r1, r0.yzzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(ChronoRiftTextureSampler, temp0.yz); + // add_pp r0.yz, v0.xwzw, v0.xwzw + temp0.yz = /* not implemented _pp modifier */ i.texcoord.wz + i.texcoord.wz; + // texld r2, r0.yzzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(ChronoRiftTextureSampler, temp0.yz); + // mul_pp r0.yzw, r1.xxyz, r2.xxyz + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * temp2.xyz; + // add_pp r0.yzw, r0, r0 + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw + temp0.yzw; + // mad_pp r0.xyz, r0.x, c1, r0.yzww + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.3, 0.6, 3) + temp0.yzw; + // min_pp r1.xyz, r0, c0.x + temp1.xyz = /* not implemented _pp modifier */ min(temp0.xyz, float3(2, 2, 2)); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.z + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 1, 0 + // def c1, 0.3, 0.6, 3, 0 + // dcl_texcoord v0 + // dcl_texcoord3 v1.xy + // dcl_texcoord4 v2.xy + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v2, s1 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v3, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // add_pp r0.yz, v0.xxyw, v0.xxyw + temp0.yz = /* not implemented _pp modifier */ i.texcoord.xy + i.texcoord.xy; + // texld r1, r0.yzzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(ChronoRiftTextureSampler, temp0.yz); + // add_pp r0.yz, v0.xwzw, v0.xwzw + temp0.yz = /* not implemented _pp modifier */ i.texcoord.wz + i.texcoord.wz; + // texld r2, r0.yzzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(ChronoRiftTextureSampler, temp0.yz); + // mul_pp r0.yzw, r1.xxyz, r2.xxyz + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * temp2.xyz; + // add_pp r0.yzw, r0, r0 + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw + temp0.yzw; + // mad_pp r0.xyz, r0.x, c1, r0.yzww + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.3, 0.6, 3) + temp0.yzw; + // min_pp r1.xyz, r0, c0.x + temp1.xyz = /* not implemented _pp modifier */ min(temp0.xyz, float3(2, 2, 2)); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.z + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 1, 0 + // def c1, 0.3, 0.6, 3, 0 + // dcl_texcoord v0 + // dcl_texcoord3 v1.xy + // dcl_texcoord4 v2.xy + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v2, s1 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v3, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // add_pp r0.yz, v0.xxyw, v0.xxyw + temp0.yz = /* not implemented _pp modifier */ i.texcoord.xy + i.texcoord.xy; + // texld r1, r0.yzzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(ChronoRiftTextureSampler, temp0.yz); + // add_pp r0.yz, v0.xwzw, v0.xwzw + temp0.yz = /* not implemented _pp modifier */ i.texcoord.wz + i.texcoord.wz; + // texld r2, r0.yzzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(ChronoRiftTextureSampler, temp0.yz); + // mul_pp r0.yzw, r1.xxyz, r2.xxyz + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * temp2.xyz; + // add_pp r0.yzw, r0, r0 + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw + temp0.yzw; + // mad_pp r0.xyz, r0.x, c1, r0.yzww + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.3, 0.6, 3) + temp0.yzw; + // min_pp r1.xyz, r0, c0.x + temp1.xyz = /* not implemented _pp modifier */ min(temp0.xyz, float3(2, 2, 2)); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.z + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 94 + compile ps_3_0 PS_M_Array_Shader_1(), // 95 + compile ps_3_0 PS_M_Array_Shader_2(), // 96 + compile ps_3_0 PS_M_Array_Shader_3(), // 97 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0.003, 0 + // def c1, 0.3, 0.6, 3, 0 + // def c2, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xyz, -r0, c123 + temp1.xyz = -temp0.xyz + EyePosition.xyz; + // mad r2, r0.xyxy, c0.z, v2.xyxy + temp2 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r2, r2, c2.xyzx + temp2 = temp2 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add r0.zw, r2.xyyw, r2.xyxz + temp0.zw = temp2.yw + temp2.xz; + // add oT0.x, r0.z, c12.x + o.texcoord.x = temp0.z + expr12.x; + // mov oT0.y, r0.w + o.texcoord.y = temp0.w; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r2, r1 + temp0.z = dot(temp2.xyz, temp1.xyz); + // add r0.z, -r0.z, c0.x + temp0.z = -temp0.z + float1(1); + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // mul oT2.xyz, r0.z, c1 + o.texcoord2 = temp0.z * float4(0.3, 0.6, 3, 0); + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, c0.y + o.color = float4(0, 0, 0, 0); + // mov oT0.zw, v2.xyyx + o.texcoord.zw = i.texcoord.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + float3 temp3; + // def c0, 1, -1, 0.003, 0 + // def c1, 0.3, 0.6, 3, 0 + // def c2, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1, r0.xyxy, c0.z, v3.xyxy + temp1 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r1, r1, c2.xyzx + temp1 = temp1 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add r1.xy, r1.ywzw, r1.xzzw + temp1.xy = temp1.yw + temp1.xz; + // add oT0.x, r1.x, c12.x + o.texcoord.x = temp1.x + expr12.x; + // mov oT0.y, r1.y + o.texcoord.y = temp1.y; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.z, r3, r1 + temp0.z = dot(temp3.xyz, temp1.xyz); + // add r0.z, -r0.z, c0.x + temp0.z = -temp0.z + float1(1); + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // mul oT2.xyz, r0.z, c1 + o.texcoord2 = temp0.z * float4(0.3, 0.6, 3, 0); + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, c0.w + o.color = float4(0, 0, 0, 0); + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 100 + compile vs_2_0 VS_L_Array_Shader_1(), // 101 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, 1, 0, 0 + // dcl t0 + // dcl t1.xy + // dcl t2.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(ChronoRiftTextureSampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mad r0.xyz, r0, c0.x, t2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + i.texcoord2.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov r0.w, c0.y + temp0.w = float1(1); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, 1, 0, 0 + // dcl t0 + // dcl t1.xy + // dcl t2.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s0 + temp0 = tex2D(ChronoRiftTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(ChronoRiftTextureSampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mad r0.xyz, r0, c0.x, t2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + i.texcoord2.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov r0.w, c0.y + temp0.w = float1(1); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 102 + compile ps_2_0 PS_L_Array_Shader_1(), // 103 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 106 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 107 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 108 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 109 +}; +// _CreateDepthMap_Expression21 Expression_2_0 Has PRES False +float _CreateDepthMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateDepthMap_Expression22 Expression_2_0 Has PRES False +float _CreateDepthMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 90 + PixelShader = PS_H_Array[Default_Expression26()]; // 91 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 0; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 98 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 99 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 0; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 104 + PixelShader = ; // 105 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaFunc = 7; + AlphaRef = 96; + AlphaTestEnable = 0; + } +} + +technique _CreateDepthMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateDepthMap_Expression22()]; // 110 + PixelShader = PSCreateShadowMap_Array[_CreateDepthMap_Expression21()]; // 111 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsfactionfrozen.fx b/objectsfactionfrozen.fx new file mode 100644 index 0000000..cc90077 --- /dev/null +++ b/objectsfactionfrozen.fx @@ -0,0 +1,5242 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture FractalNormalMap ; // 49 +sampler2D FractalNormalMapSampler = +sampler_state +{ + Texture = ; // 52 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 56 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 58 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 61 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 63 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 66 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 68 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 76 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 79 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mov r1.xyz, c9 + temp1.xyz = DirectionalLight[2].Color.xyz; + // mad r0.xyz, r1, r0.x, c4 + temp0.xyz = temp1.xyz * temp0.xxx + AmbientLightColor.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 83 + compile vs_3_0 VS_H_Array_Shader_1(), // 84 +}; +// VS_H_Frozen_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Frozen_Array_Shader_0_Output VS_H_Frozen_Array_Shader_0(VS_H_Frozen_Array_Shader_0_Input i) +{ + VS_H_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 1, 0, 1.5, 0.5 + // def c2, 0.015, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // dp3 r2.x, v1, c124 + temp2.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v1, c125 + temp2.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v1, c126 + temp2.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.y + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r0.xyz, r3, v5 + temp0.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mad r0.xyz, r2, c0.z, r1 + temp0.xyz = temp2.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mul o1.xy, r0, c2.x + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.zw, v4.xyyx + o.texcoord.zw = i.texcoord.yx; + // dp3 r1.x, v3, c124 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // dp3 r1.x, v2, c124 + temp1.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r1.x + o.texcoord1.y = -temp1.x; + // dp3 r1.x, v3, c125 + temp1.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r1.x + o.texcoord2.x = -temp1.x; + // dp3 r1.x, v2, c125 + temp1.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r1.x + o.texcoord2.y = -temp1.x; + // dp3 r1.x, v3, c126 + temp1.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r1.x + o.texcoord3.x = -temp1.x; + // dp3 r1.x, v2, c126 + temp1.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r1.x + o.texcoord3.y = -temp1.x; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Frozen_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Frozen_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Frozen_Array_Shader_1_Output VS_H_Frozen_Array_Shader_1(VS_H_Frozen_Array_Shader_1_Input i) +{ + VS_H_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 1.5, 0 + // def c2, 0.5, 0.015, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.w + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r2, c0.z, r0 + temp0.xyz = temp2.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mul o1.xy, r0, c2.y + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.zzww + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Frozen_Array[2] = { + compile vs_3_0 VS_H_Frozen_Array_Shader_0(), // 85 + compile vs_3_0 VS_H_Frozen_Array_Shader_1(), // 86 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -3 + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c0.y, c0.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c0.wwzw + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v0, s4 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.x, c1.x + temp6.x = float1(0); + // cmp r6.yzw, -r4_abs.x, c89.xxyz, r6.x + temp6.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r6.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.xxx; + // cmp r8.xy, -r4_abs.x, c91, r6.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6.yzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.yzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.x + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r3, v0, s5 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r0, -r2.w, r1 + temp1.xyz = temp0.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // def c4, 2, 2.2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c4.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c4.x, c4.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c4.wwzw + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r2.yzww, v6, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c4.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.x, c1.x + temp2.x = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.x + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r2.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.xxx; + // cmp r8.xy, -r4_abs.x, c91, r2.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c4.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.x + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c1, 2, 2.2, -1, -3 + // def c3, 1, 0, 0.25, 0 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c1.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c1.x, c1.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c1.wwzw + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c3.x, c3.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c1.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c3.z + temp1.w = temp1.w * float1(0.25); + // dp3 r3.x, r1, r0 + temp3.x = dot(temp1.xyz, temp0.xyz); + // add r3.x, r3.x, r3.x + temp3.x = temp3.x + temp3.x; + // mad r1.xyz, r0, -r3.x, r1 + temp1.xyz = temp0.xyz * -temp3.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2.yzww, v7, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c3.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c3.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c3.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c3.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c9 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c3.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c1.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c3.y + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c1.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 87 + compile ps_3_0 PS_H_Array_Shader_1(), // 88 + compile ps_3_0 PS_H_Array_Shader_2(), // 89 + compile ps_3_0 PS_H_Array_Shader_3(), // 90 +}; +// PS_H_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_0(PS_H_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, 2, -1, 3, 1 + // def c1, 2.2, 0, 0, 0 + // def c2, 0.13, 0.33, 0.5, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6.w + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s2 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r2, c0.x, c0.y + temp0.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.zzww + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r2.xyz, r3, c1.x + temp2.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r3.xxyz, c5.xxyz + temp2.yzw = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2.x, r2.yzww + temp2.xyz = temp2.xxx * temp2.yzw; + // mul r2.xyz, r2, c2 + temp2.xyz = temp2.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, c5, r2 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz + temp2.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r2.x, c7 + temp2.xyz = temp2.xxx * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r2, c2, r1 + temp1.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r1.w, c3 + temp3 = temp1.w + float4(-0, -1, -2, -3); + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-4, -5, -6, -7); + // mov r5.y, c1.y + temp5.y = float1(0); + // cmp r5.xzw, -r3_abs.x, c89.xyyz, r5.y + temp5.xzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.yyy; + // cmp r6.xyz, -r3_abs.x, c90, r5.y + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.yyy; + // cmp r7.xy, -r3_abs.x, c91, r5.y + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.yy; + // cmp r5.xyz, -r3_abs.y, c92, r5.xzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.xzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.z, r2.w + temp3.z = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, -r3.x, r3.z + temp2.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r2.w, r2.w, -r3.x, c0.w + temp2.w = saturate(temp2.w * -temp3.x + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // dp3 r2.w, r0, r5 + temp2.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r3, r3.w, r2 + temp2.xyz = temp3.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, c2, r1 + temp0.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // texld r1, v5, s4 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_1(PS_H_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 2.2 + // def c2, 2, -1, 3, 1 + // def c3, 0.13, 0.33, 0.5, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7.w + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s3 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r2, c2.x, c2.y + temp0.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c2.zzww + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // texld r2, v5, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r3.xy, c11.zxzw, v5 + temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r3, r3, s0 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // add r3.yz, c11, v5.xxyw + temp3.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r4, r3.yzzw, s0 + temp4 = tex2D(ShadowMapSampler, temp3.yz); + // add r3.yz, c11.xwzw, v5.xxyw + temp3.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r5, r3.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp3.yz); + // mov r2.y, r3.x + temp2.y = temp3.x; + // mov r2.z, r4.x + temp2.z = temp4.x; + // mov r2.w, r5.x + temp2.w = temp5.x; + // add r2, r2, -v5.z + temp2 = temp2 + -i.texcoord5.z; + // cmp r2, r2, c1.x, c1.y + temp2 = (temp2 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, c2.w, r2 + temp1.w = dot(float4(1, 1, 1, 1), temp2); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.x, r1, r0 + temp2.x = dot(temp1.xyz, temp0.xyz); + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mad r1.xyz, r0, -r2.x, r1 + temp1.xyz = temp0.xyz * -temp2.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r2, r1, s2 + temp2 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r2, c5 + temp1.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r2.xyz, r3, c1.w + temp2.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r3 + temp2.xyz = temp1.www * temp3.xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r3.x, r2.w, c1.y + temp3.x = max(temp2.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r3.x, r2 + temp2.xyz = temp3.xxx * temp2.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, r1.w, r2 + temp1.xyz = temp1.xyz * temp1.www + temp2.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r2.x, c7 + temp2.xyz = temp2.xxx * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r2, c3, r1 + temp1.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r1.w, c0 + temp3 = temp1.w + float4(-0, -1, -2, -3); + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-4, -5, -6, -7); + // mov r5.y, c1.y + temp5.y = float1(0); + // cmp r5.xzw, -r3_abs.x, c89.xyyz, r5.y + temp5.xzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.yyy; + // cmp r6.xyz, -r3_abs.x, c90, r5.y + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.yyy; + // cmp r7.xy, -r3_abs.x, c91, r5.y + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.yy; + // cmp r5.xyz, -r3_abs.y, c92, r5.xzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.xzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.z, r2.w + temp3.z = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, -r3.x, r3.z + temp2.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r2.w, r2.w, -r3.x, c2.w + temp2.w = saturate(temp2.w * -temp3.x + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // dp3 r2.w, r0, r5 + temp2.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r3, r3.w, r2 + temp2.xyz = temp3.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, c2.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, c3, r1 + temp0.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // texld r1, v6, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_2(PS_H_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, 2, -1, 3, 1 + // def c1, 2.2, 0, 0, 0 + // def c2, 0.13, 0.33, 0.5, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6.w + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s2 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r2, c0.x, c0.y + temp0.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.zzww + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r2.xyz, r3, c1.x + temp2.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r3.xxyz, c5.xxyz + temp2.yzw = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2.x, r2.yzww + temp2.xyz = temp2.xxx * temp2.yzw; + // mul r2.xyz, r2, c2 + temp2.xyz = temp2.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, c5, r2 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz + temp2.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r2.x, c7 + temp2.xyz = temp2.xxx * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r2, c2, r1 + temp1.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r1.w, c3 + temp3 = temp1.w + float4(-0, -1, -2, -3); + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-4, -5, -6, -7); + // mov r5.y, c1.y + temp5.y = float1(0); + // cmp r5.xzw, -r3_abs.x, c89.xyyz, r5.y + temp5.xzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.yyy; + // cmp r6.xyz, -r3_abs.x, c90, r5.y + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.yyy; + // cmp r7.xy, -r3_abs.x, c91, r5.y + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.yy; + // cmp r5.xyz, -r3_abs.y, c92, r5.xzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.xzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.z, r2.w + temp3.z = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, -r3.x, r3.z + temp2.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r2.w, r2.w, -r3.x, c0.w + temp2.w = saturate(temp2.w * -temp3.x + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // dp3 r2.w, r0, r5 + temp2.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r3, r3.w, r2 + temp2.xyz = temp3.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, c2, r1 + temp0.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // texld r1, v5, s4 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_3(PS_H_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 2.2 + // def c2, 2, -1, 3, 1 + // def c3, 0.13, 0.33, 0.5, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7.w + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s3 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r2, c2.x, c2.y + temp0.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c2.zzww + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // texld r2, v5, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r3.xy, c11.zxzw, v5 + temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r3, r3, s0 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // add r3.yz, c11, v5.xxyw + temp3.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r4, r3.yzzw, s0 + temp4 = tex2D(ShadowMapSampler, temp3.yz); + // add r3.yz, c11.xwzw, v5.xxyw + temp3.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r5, r3.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp3.yz); + // mov r2.y, r3.x + temp2.y = temp3.x; + // mov r2.z, r4.x + temp2.z = temp4.x; + // mov r2.w, r5.x + temp2.w = temp5.x; + // add r2, r2, -v5.z + temp2 = temp2 + -i.texcoord5.z; + // cmp r2, r2, c1.x, c1.y + temp2 = (temp2 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, c2.w, r2 + temp1.w = dot(float4(1, 1, 1, 1), temp2); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.x, r1, r0 + temp2.x = dot(temp1.xyz, temp0.xyz); + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mad r1.xyz, r0, -r2.x, r1 + temp1.xyz = temp0.xyz * -temp2.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r2, r1, s2 + temp2 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r2, c5 + temp1.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r2.xyz, r3, c1.w + temp2.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r3 + temp2.xyz = temp1.www * temp3.xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r3.x, r2.w, c1.y + temp3.x = max(temp2.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r3.x, r2 + temp2.xyz = temp3.xxx * temp2.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, r1.w, r2 + temp1.xyz = temp1.xyz * temp1.www + temp2.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r2.x, c7 + temp2.xyz = temp2.xxx * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r2, c3, r1 + temp1.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r1.w, c0 + temp3 = temp1.w + float4(-0, -1, -2, -3); + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-4, -5, -6, -7); + // mov r5.y, c1.y + temp5.y = float1(0); + // cmp r5.xzw, -r3_abs.x, c89.xyyz, r5.y + temp5.xzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.yyy; + // cmp r6.xyz, -r3_abs.x, c90, r5.y + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.yyy; + // cmp r7.xy, -r3_abs.x, c91, r5.y + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.yy; + // cmp r5.xyz, -r3_abs.y, c92, r5.xzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.xzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.z, r2.w + temp3.z = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, -r3.x, r3.z + temp2.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r2.w, r2.w, -r3.x, c2.w + temp2.w = saturate(temp2.w * -temp3.x + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // dp3 r2.w, r0, r5 + temp2.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r3, r3.w, r2 + temp2.xyz = temp3.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, c2.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, c3, r1 + temp0.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // texld r1, v6, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Frozen_Array[4] = { + compile ps_3_0 PS_H_Frozen_Array_Shader_0(), // 91 + compile ps_3_0 PS_H_Frozen_Array_Shader_1(), // 92 + compile ps_3_0 PS_H_Frozen_Array_Shader_2(), // 93 + compile ps_3_0 PS_H_Frozen_Array_Shader_3(), // 94 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c12.x + temp0.xy = temp0.xz * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 100 + compile vs_3_0 VS_M_Array_Shader_1(), // 101 +}; +// VS_M_Frozen_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Frozen_Array_Shader_0_Output VS_M_Frozen_Array_Shader_0(VS_M_Frozen_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, 1.5, 0.015 + // def c2, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mad r1.xyz, r0, c0.z, r1 + temp1.xyz = temp0.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r2.x, v3, c124 + temp2.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v3, c125 + temp2.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v3, c126 + temp2.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r2 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v2, c124 + temp3.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v2, c125 + temp3.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v2, c126 + temp3.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r3 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 o2.z, c6, r0 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp0.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r0 + temp2.z = dot(temp4.xyz, temp0.xyz); + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r2, r0.w + o.texcoord2 = temp2 * temp0.w; + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.x, r0, c8 + temp0.x = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.y, r0.w, c0.y + temp0.y = max(temp0.w, float1(0)); + // mul r0.yzw, r0.y, c9.xxyz + temp0.yzw = temp0.yyy * DirectionalLight[2].Color.xyz; + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c7, r0.x, r0.yzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.xxx + temp0.yzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // mul o1.xy, r1, c0.w + o.texcoord.xy = temp1.xy * float2(0.015, 0.015); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xy, c2 + temp0.xy = float2(1, -1); + // mul r0.xy, r0, c12.x + temp0.xy = temp0.xy * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.zw, v4.xyyx + o.texcoord.zw = i.texcoord.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o5.w, r0.w + o.texcoord4.w = temp0.w; + // mad o5.xyz, r0, r1.x, c2.zzww + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Frozen_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Frozen_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Frozen_Array_Shader_1_Output VS_M_Frozen_Array_Shader_1(VS_M_Frozen_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 1.5, 0 + // def c2, 0.015, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mad r0.xyz, r1, c0.z, r0 + temp0.xyz = temp1.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r2, v3.zxyy, c128[a0.x].yzxy + temp2 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.x, c6, -r2 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.y, c6, -r3 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 o2.z, c6, r1 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp1.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r1 + temp2.z = dot(temp4.xyz, temp1.xyz); + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r2, r1.w + o.texcoord2 = temp2 * temp1.w; + // dp3 r1.w, r1, c10 + temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.x, r1, c8 + temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r1.y, r1.w, c0.w + temp1.y = max(temp1.w, float1(0)); + // mul r1.yzw, r1.y, c9.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz; + // max r1.x, r1.x, c0.w + temp1.x = max(temp1.x, float1(0)); + // mad r1.xyz, c7, r1.x, r1.yzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // mul o1.xy, r0, c2.x + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord.yx; + // mov o2.w, c0.w + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Frozen_Array[2] = { + compile vs_3_0 VS_M_Frozen_Array_Shader_0(), // 102 + compile vs_3_0 VS_M_Frozen_Array_Shader_1(), // 103 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(3, 3, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.x, c0.y + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c0.z + temp1.z = pow(temp0.w, float1(50)); + // cmp r0.w, -r1.x, c0.x, c0.y + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.y, r2.x, c1.x + temp1.y = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.y, c0.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, -c1.z, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c0.w + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(3, 3, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.x, c0.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c0.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c0.x, c0.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.w, r2.x, c1.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r1.y, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.y * temp0.w; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 50, 0 + // def c3, 0.8, 2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c3.y, c3.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c3.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(3, 3, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v4 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c1.x, c1.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c1.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c1.x, c1.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.x, r2.x, r1.x + temp1.x = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r0.w, r0.w, r1.x + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.x; + // mad_pp r1.xyz, r0, r1.y, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.yyy + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 50, 0.25 + // def c3, 0.8, 2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c1.y, c1.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.x, -c3.z, r1 + temp1.x = dot(float4(1, 1, 1, 1), temp1); + // mul r1.x, r1.x, c1.w + temp1.x = temp1.x * float1(0.25); + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.yzw, r2.xxyz, c3.y, c3.z + temp1.yzw = /* not implemented _pp modifier */ temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.yzw, r1, -c3.xwwz + temp1.yzw = /* not implemented _pp modifier */ temp1.yzw * float3(3, 3, 1); + // nrm_pp r2.xyz, r1.yzww + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.yzww.xyz).xyz; + // dp3_pp r1.y, r2, v1 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.z, r2, v5 + temp1.z = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.w, -r1.y, c1.x, c1.y + temp1.w = (-temp1.y >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.y, c1.z + temp2.x = pow(temp1.y, float1(50)); + // cmp r1.y, -r1.z, c1.x, c1.y + temp1.y = (-temp1.z >= 0) ? float1(0) : float1(1); + // mul_pp r2.y, r1.z, r1.y + temp2.y = /* not implemented _pp modifier */ temp1.z * temp1.y; + // mul r1.y, r1.w, r1.y + temp1.y = temp1.w * temp1.y; + // mul_pp r2.z, r2.x, r1.y + temp2.z = /* not implemented _pp modifier */ temp2.x * temp1.y; + // mul_pp r1.xy, r1.x, r2.yzzw + temp1.xy = /* not implemented _pp modifier */ temp1.xx * temp2.yz; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 104 + compile ps_3_0 PS_M_Array_Shader_1(), // 105 + compile ps_3_0 PS_M_Array_Shader_2(), // 106 + compile ps_3_0 PS_M_Array_Shader_3(), // 107 +}; +// PS_M_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_0(PS_M_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3.w + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // mad_pp r0.xyz, r0.y, c2, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp0.yyy * float3(0.13, 0.33, 0.5) + temp0.xxx; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_1(PS_M_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0.8, 2, -1, -3 + // def c1, 0, 1, 50, 0.25 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4.w + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s3 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.y, c0.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c0.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c0.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // mad_pp r0.xyz, r0.x, c2, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.13, 0.33, 0.5) + temp0.yyy; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_2(PS_M_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3.w + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // mad_pp r0.xyz, r0.y, c2, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp0.yyy * float3(0.13, 0.33, 0.5) + temp0.xxx; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_3(PS_M_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0.8, 2, -1, -3 + // def c1, 0, 1, 50, 0.25 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4.w + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s3 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.y, c0.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c0.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c0.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // mad_pp r0.xyz, r0.x, c2, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.13, 0.33, 0.5) + temp0.yyy; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Frozen_Array[4] = { + compile ps_3_0 PS_M_Frozen_Array_Shader_0(), // 108 + compile ps_3_0 PS_M_Frozen_Array_Shader_1(), // 109 + compile ps_3_0 PS_M_Frozen_Array_Shader_2(), // 110 + compile ps_3_0 PS_M_Frozen_Array_Shader_3(), // 111 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 117 + compile vs_2_0 VS_L_Array_Shader_1(), // 118 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s1 + temp0 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r3.xyz, r1, c0 + temp3.xyz = temp1.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r1 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r0.xyz, r0.z, r3, r1 + temp0.xyz = temp0.zzz * temp3.xyz + temp1.xyz; + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 119 + compile ps_2_0 PS_L_Array_Shader_1(), // 120 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 124 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 125 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 126 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 127 +}; +// _CreateShadowMap_Expression33 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression33() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression34 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression34() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression35 Expression_2_0 Has PRES False +float Default_L_Expression35() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression36 Expression_2_0 Has PRES False +float Default_L_Expression36() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression37 Expression_2_0 Has PRES False +float Default_M_Expression37() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression38 Expression_2_0 Has PRES False +float Default_M_Expression38() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression39 Expression_2_0 Has PRES False +float Default_M_Expression39() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression40 Expression_2_0 Has PRES False +float Default_M_Expression40() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression41 Expression_2_0 Has PRES False +float Default_Expression41() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression42 Expression_2_0 Has PRES False +float Default_Expression42() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression43 Expression_2_0 Has PRES False +float Default_Expression43() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression44 Expression_2_0 Has PRES False +float Default_Expression44() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression44()]; // 96 + PixelShader = PS_H_Array[Default_Expression43()]; // 97 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } + pass p1 + { + VertexShader = VS_H_Frozen_Array[Default_Expression42()]; // 98 + PixelShader = PS_H_Frozen_Array[Default_Expression41()]; // 99 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression40()]; // 113 + PixelShader = PS_M_Array[Default_M_Expression39()]; // 114 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } + pass p1 + { + VertexShader = VS_M_Frozen_Array[Default_M_Expression38()]; // 115 + PixelShader = PS_M_Frozen_Array[Default_M_Expression37()]; // 116 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression36()]; // 122 + PixelShader = PS_L_Array[Default_L_Expression35()]; // 123 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression34()]; // 128 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression33()]; // 129 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsformationpreview.fx b/objectsformationpreview.fx new file mode 100644 index 0000000..87e8a9c --- /dev/null +++ b/objectsformationpreview.fx @@ -0,0 +1,2117 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(ps_2_0, c1) : register(ps_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 30 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 34 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 39 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 43 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 48 +sampler2D DiffuseTextureSampler = +sampler_state +{ + Texture = ; // 50 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 53 +sampler2D NormalMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 55 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale : register(ps_3_0, c11) = { 1 }; +float3 AmbientColor = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 71 +sampler2D ShroudTextureSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 74 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 o2.z, v1, c124 + o.texcoord1.z = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 o3.z, v1, c125 + o.texcoord2.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 o4.z, v1, c126 + o.texcoord3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mov o6.w, r1.x + o.texcoord5.w = temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.z, r1.x, r1.y, c0.z + o.texcoord5.z = temp1.x * temp1.y + float1(-0.0015); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1, r0.xyxy, c0.w, v4.xyxy + temp1 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r2, r1, c1.xyzx + temp2 = temp1 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // mul r1, r1, c1.xzyx + temp1 = temp1 * float4(0.43019223, -0.6143571, 0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // add o1.x, r0.w, c12.x + o.texcoord.x = temp0.w + expr12.x; + // add o1.w, r1.w, r1.z + o.texcoord.w = temp1.w + temp1.z; + // add r0.w, r1.y, r1.x + temp0.w = temp1.y + temp1.x; + // add o1.z, r0.w, c12.x + o.texcoord.z = temp0.w + expr12.x; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // mad r0.xy, r0, c117, -r1 + temp0.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o6.xy, v4 + o.texcoord5.xy = i.texcoord.xy; + // mov o8, c0.y + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3; + float addr0; + // def c0, 1, -1, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mov o6.w, r1.x + o.texcoord5.w = temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.z, r1.x, r1.y, c0.z + o.texcoord5.z = temp1.x * temp1.y + float1(-0.0015); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1.xy, r0.yxzw, c0.w, v5.yxzw + temp1.xy = temp0.yx * float2(0.003, 0.003) + i.texcoord.yx; + // mul r2, r1.yxyx, c1.xyzx + temp2 = temp1.yxyx * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // mad o1.w, r1.y, c1.y, r2.w + o.texcoord.w = temp1.y * float1(0.6143571) + temp2.w; + // add o1.x, r0.w, c12.x + o.texcoord.x = temp0.w + expr12.x; + // mul r0.w, r1.x, c1.z + temp0.w = temp1.x * float1(-0.6143571); + // mad r0.w, r1.y, c1.x, r0.w + temp0.w = temp1.y * float1(0.43019223) + temp0.w; + // add o1.z, r0.w, c12.x + o.texcoord.z = temp0.w + expr12.x; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r0, v3.zxyy, c128[a0.x].yzxy + temp0 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.x].zxyz + temp1 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov o2.y, -r1.x + o.texcoord1.y = -temp1.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r0.y + o.texcoord2.x = -temp0.y; + // mov o4.x, -r0.z + o.texcoord3.x = -temp0.z; + // mov o3.y, -r1.y + o.texcoord2.y = -temp1.y; + // mov o4.y, -r1.z + o.texcoord3.y = -temp1.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o6.xy, v5 + o.texcoord5.xy = i.texcoord.xy; + // mov o8, c1.w + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 78 + compile vs_3_0 VS_H_Array_Shader_1(), // 79 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2, -1, 1, 2.5 + // def c3, 0, 3, 0.055, 0.045 + // dcl_texcoord1_centroid v0.xyz + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3_centroid v2.xyz + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xy + // dcl_texcoord6 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v4, s0 + temp0 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xy, r0, c11.x + temp0.xy = temp0.xy * BumpScale.xx; + // dp3 r1.x, r0, v0 + temp1.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r1.y, r0, v1 + temp1.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r1.z, r0, v2 + temp1.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r1 + temp0.xyz = normalize(temp1.xyz).xyz; + // add r1.xyz, c123, -v3 + temp1.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 r0.x, r2, r0 + temp0.x = dot(temp2.xyz, temp0.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // pow r1.x, r0.x, c0.w + temp1.x = pow(temp0.x, float1(2.5)); + // mad r0.xyz, r1.x, c3.xyxw, c3.xzww + temp0.xyz = temp1.xxx * float3(0, 3, 0) + float3(0, 0.055, 0.045); + // min r1.xyz, c0.x, r0 + temp1.xyz = min(float3(2, 2, 2), temp0.xyz); + // mul r0.xyz, r1, c2 + temp0.xyz = temp1.xyz * TintColor.xyz; + // texld r1, v5, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c1.x + out_color.w = OpacityOverride.x; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2, -1, 1, 2.5 + // def c3, 0, 3, 0.055, 0.045 + // dcl_texcoord1_centroid v0.xyz + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3_centroid v2.xyz + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xy + // dcl_texcoord6 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v4, s0 + temp0 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xy, r0, c11.x + temp0.xy = temp0.xy * BumpScale.xx; + // dp3 r1.x, r0, v0 + temp1.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r1.y, r0, v1 + temp1.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r1.z, r0, v2 + temp1.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r1 + temp0.xyz = normalize(temp1.xyz).xyz; + // add r1.xyz, c123, -v3 + temp1.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 r0.x, r2, r0 + temp0.x = dot(temp2.xyz, temp0.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // pow r1.x, r0.x, c0.w + temp1.x = pow(temp0.x, float1(2.5)); + // mad r0.xyz, r1.x, c3.xyxw, c3.xzww + temp0.xyz = temp1.xxx * float3(0, 3, 0) + float3(0, 0.055, 0.045); + // min r1.xyz, c0.x, r0 + temp1.xyz = min(float3(2, 2, 2), temp0.xyz); + // mul r0.xyz, r1, c2 + temp0.xyz = temp1.xyz * TintColor.xyz; + // texld r1, v5, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c1.x + out_color.w = OpacityOverride.x; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2, -1, 1, 2.5 + // def c3, 0, 3, 0.055, 0.045 + // dcl_texcoord1_centroid v0.xyz + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3_centroid v2.xyz + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xy + // dcl_texcoord6 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v4, s0 + temp0 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xy, r0, c11.x + temp0.xy = temp0.xy * BumpScale.xx; + // dp3 r1.x, r0, v0 + temp1.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r1.y, r0, v1 + temp1.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r1.z, r0, v2 + temp1.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r1 + temp0.xyz = normalize(temp1.xyz).xyz; + // add r1.xyz, c123, -v3 + temp1.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 r0.x, r2, r0 + temp0.x = dot(temp2.xyz, temp0.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // pow r1.x, r0.x, c0.w + temp1.x = pow(temp0.x, float1(2.5)); + // mad r0.xyz, r1.x, c3.xyxw, c3.xzww + temp0.xyz = temp1.xxx * float3(0, 3, 0) + float3(0, 0.055, 0.045); + // min r1.xyz, c0.x, r0 + temp1.xyz = min(float3(2, 2, 2), temp0.xyz); + // mul r0.xyz, r1, c2 + temp0.xyz = temp1.xyz * TintColor.xyz; + // texld r1, v5, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c1.x + out_color.w = OpacityOverride.x; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2, -1, 1, 2.5 + // def c3, 0, 3, 0.055, 0.045 + // dcl_texcoord1_centroid v0.xyz + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3_centroid v2.xyz + // dcl_texcoord4 v3.xyz + // dcl_texcoord5 v4.xy + // dcl_texcoord6 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v4, s0 + temp0 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xy, r0, c11.x + temp0.xy = temp0.xy * BumpScale.xx; + // dp3 r1.x, r0, v0 + temp1.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r1.y, r0, v1 + temp1.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r1.z, r0, v2 + temp1.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r1 + temp0.xyz = normalize(temp1.xyz).xyz; + // add r1.xyz, c123, -v3 + temp1.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 r0.x, r2, r0 + temp0.x = dot(temp2.xyz, temp0.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // pow r1.x, r0.x, c0.w + temp1.x = pow(temp0.x, float1(2.5)); + // mad r0.xyz, r1.x, c3.xyxw, c3.xzww + temp0.xyz = temp1.xxx * float3(0, 3, 0) + float3(0, 0.055, 0.045); + // min r1.xyz, c0.x, r0 + temp1.xyz = min(float3(2, 2, 2), temp0.xyz); + // mul r0.xyz, r1, c2 + temp0.xyz = temp1.xyz * TintColor.xyz; + // texld r1, v5, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c1.x + out_color.w = OpacityOverride.x; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 80 + compile ps_3_0 PS_H_Array_Shader_1(), // 81 + compile ps_3_0 PS_H_Array_Shader_2(), // 82 + compile ps_3_0 PS_H_Array_Shader_3(), // 83 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul c11.x, c1.x, (0.3) + expr11.x = Time.x * (0.3); + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5, temp6; + // def c0, 1, 0, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // def c2, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_texcoord6 o7.xyz + // dcl_color o8 + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r1.x, v3, c124 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v3, c125 + temp1.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v3, c126 + temp1.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r5.xyz, r4, r1.w, c6 + temp5.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // mul r4.xyz, r4, r1.w + temp4.xyz = temp4.xyz * temp1.www; + // dp3 r6.x, r5, -r1 + temp6.x = dot(temp5.xyz, -temp1.xyz); + // dp3 o7.x, r4, -r1 + o.texcoord6.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r6.y, r5, -r2 + temp6.y = dot(temp5.xyz, -temp2.xyz); + // dp3 o7.y, r4, -r2 + o.texcoord6.y = dot(temp4.xyz, -temp2.xyz); + // dp3 o7.z, r4, r3 + o.texcoord6.z = dot(temp4.xyz, temp3.xyz); + // dp3 r6.z, r5, r3 + temp6.z = dot(temp5.xyz, temp3.xyz); + // dp3 r1.x, r6, r6 + temp1.x = dot(temp6.xyz, temp6.xyz); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // mul o3.xyz, r6, r1.x + o.texcoord2 = temp6 * temp1.x; + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.w, r0, c115 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mul r1.yz, r0.z, c117.xzww + temp1.yz = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // rcp r0.z, r1.x + temp0.z = 1.0f / temp1.x; + // mov o5.w, r1.x + o.texcoord4.w = temp1.x; + // mad o5.z, r0.w, r0.z, c0.z + o.texcoord4.z = temp0.w * temp0.z + float1(-0.0015); + // mad r2, r0.xyxy, c0.w, v4.xyxy + temp2 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r3, r2, c1.xyzx + temp3 = temp2 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // mul r2, r2, c1.xzyx + temp2 = temp2 * float4(0.43019223, -0.6143571, 0.6143571, 0.43019223); + // add o1.y, r3.w, r3.z + o.texcoord.y = temp3.w + temp3.z; + // add r0.z, r3.y, r3.x + temp0.z = temp3.y + temp3.x; + // add o1.x, r0.z, c11.x + o.texcoord.x = temp0.z + expr11.x; + // add o1.w, r2.w, r2.z + o.texcoord.w = temp2.w + temp2.z; + // add r0.z, r2.y, r2.x + temp0.z = temp2.y + temp2.x; + // add o1.z, r0.z, c11.x + o.texcoord.z = temp0.z + expr11.x; + // add r0.zw, r0.xyxy, c13 + temp0.zw = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0.zwzw, c13 + o.texcoord3.xy = temp0.zw * Shroud.ScaleUV_OffsetUV.xy; + // mad r0.zw, r0.xyxy, c117.xyxy, -r1.xyyz + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.yz; + // add o4.zw, r0, c118.xyxy + o.texcoord3.zw = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mov r1.x, c12.x + temp1.x = expr12.x; + // mul r0.zw, r1.x, c2.xyxy + temp0.zw = temp1.xx * float2(1, -1); + // mul o6.xy, r0, r0.zwzw + o.texcoord5 = temp0 * temp0.zwzw; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // mov o5.xy, v4 + o.texcoord4.xy = i.texcoord.xy; + // mov o8, c0.y + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul c11.x, c1.x, (0.3) + expr11.x = Time.x * (0.3); + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + float3 temp5, temp6; + // def c0, 1, -1, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_texcoord6 o7.xyz + // dcl_color o8 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r5.xyz, r4, r1.w, c6 + temp5.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // mul r4.xyz, r4, r1.w + temp4.xyz = temp4.xyz * temp1.www; + // dp3 r6.x, r5, -r1 + temp6.x = dot(temp5.xyz, -temp1.xyz); + // dp3 o7.x, r4, -r1 + o.texcoord6.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r6.y, r5, -r2 + temp6.y = dot(temp5.xyz, -temp2.xyz); + // dp3 o7.y, r4, -r2 + o.texcoord6.y = dot(temp4.xyz, -temp2.xyz); + // dp3 o7.z, r4, r3 + o.texcoord6.z = dot(temp4.xyz, temp3.xyz); + // dp3 r6.z, r5, r3 + temp6.z = dot(temp5.xyz, temp3.xyz); + // dp3 r1.x, r6, r6 + temp1.x = dot(temp6.xyz, temp6.xyz); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // mul o3.xyz, r6, r1.x + o.texcoord2 = temp6 * temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r0.w + temp1.y = 1.0f / temp0.w; + // mov o5.w, r0.w + o.texcoord4.w = temp0.w; + // mad o5.z, r1.x, r1.y, c0.z + o.texcoord4.z = temp1.x * temp1.y + float1(-0.0015); + // mad r1.xy, r0.yxzw, c0.w, v5.yxzw + temp1.xy = temp0.yx * float2(0.003, 0.003) + i.texcoord.yx; + // mul r2, r1.yxyx, c1.xyzx + temp2 = temp1.yxyx * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // mad o1.w, r1.y, c1.y, r2.w + o.texcoord.w = temp1.y * float1(0.6143571) + temp2.w; + // add o1.x, r0.w, c11.x + o.texcoord.x = temp0.w + expr11.x; + // mul r0.w, r1.x, c1.z + temp0.w = temp1.x * float1(-0.6143571); + // mad r0.w, r1.y, c1.x, r0.w + temp0.w = temp1.y * float1(0.43019223) + temp0.w; + // add o1.z, r0.w, c11.x + o.texcoord.z = temp0.w + expr11.x; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add o4.zw, r0, c118.xyxy + o.texcoord3.zw = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r0.zw, r1.xyxy, c12.x + temp0.zw = temp1.xy * expr12.xx; + // mul o6.xy, r0, r0.zwzw + o.texcoord5 = temp0 * temp0.zwzw; + // mov o2.w, c1.w + o.texcoord1.w = float1(0); + // mov o5.xy, v5 + o.texcoord4.xy = i.texcoord.xy; + // mov o8, c1.w + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 87 + compile vs_3_0 VS_M_Array_Shader_1(), // 88 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 1, 2.5 + // def c3, 0, 3, 0.055, 0.045 + // dcl_texcoord3 v0.xy + // dcl_texcoord4 v1.xy + // dcl_texcoord6 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v2, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // pow_pp r1.x, r0.x, c0.w + temp1.x = /* not implemented _pp modifier */ pow(temp0.x, float1(2.5)); + // mad_pp r0.xyz, r1.x, c3.xyxw, c3.xzww + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * float3(0, 3, 0) + float3(0, 0.055, 0.045); + // min_pp r1.xyz, c0.x, r0 + temp1.xyz = /* not implemented _pp modifier */ min(float3(2, 2, 2), temp0.xyz); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c1.x + out_color.w = /* not implemented _pp modifier */ OpacityOverride.x; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 1, 2.5 + // def c3, 0, 3, 0.055, 0.045 + // dcl_texcoord3 v0.xy + // dcl_texcoord4 v1.xy + // dcl_texcoord6 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v2, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // pow_pp r1.x, r0.x, c0.w + temp1.x = /* not implemented _pp modifier */ pow(temp0.x, float1(2.5)); + // mad_pp r0.xyz, r1.x, c3.xyxw, c3.xzww + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * float3(0, 3, 0) + float3(0, 0.055, 0.045); + // min_pp r1.xyz, c0.x, r0 + temp1.xyz = /* not implemented _pp modifier */ min(float3(2, 2, 2), temp0.xyz); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c1.x + out_color.w = /* not implemented _pp modifier */ OpacityOverride.x; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 1, 2.5 + // def c3, 0, 3, 0.055, 0.045 + // dcl_texcoord3 v0.xy + // dcl_texcoord4 v1.xy + // dcl_texcoord6 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v2, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // pow_pp r1.x, r0.x, c0.w + temp1.x = /* not implemented _pp modifier */ pow(temp0.x, float1(2.5)); + // mad_pp r0.xyz, r1.x, c3.xyxw, c3.xzww + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * float3(0, 3, 0) + float3(0, 0.055, 0.045); + // min_pp r1.xyz, c0.x, r0 + temp1.xyz = /* not implemented _pp modifier */ min(float3(2, 2, 2), temp0.xyz); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c1.x + out_color.w = /* not implemented _pp modifier */ OpacityOverride.x; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2, -1, 1, 2.5 + // def c3, 0, 3, 0.055, 0.045 + // dcl_texcoord3 v0.xy + // dcl_texcoord4 v1.xy + // dcl_texcoord6 v2.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v1, s0 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v2, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // pow_pp r1.x, r0.x, c0.w + temp1.x = /* not implemented _pp modifier */ pow(temp0.x, float1(2.5)); + // mad_pp r0.xyz, r1.x, c3.xyxw, c3.xzww + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * float3(0, 3, 0) + float3(0, 0.055, 0.045); + // min_pp r1.xyz, c0.x, r0 + temp1.xyz = /* not implemented _pp modifier */ min(float3(2, 2, 2), temp0.xyz); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v0, s1 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c1.x + out_color.w = /* not implemented _pp modifier */ OpacityOverride.x; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 89 + compile ps_3_0 PS_M_Array_Shader_1(), // 90 + compile ps_3_0 PS_M_Array_Shader_2(), // 91 + compile ps_3_0 PS_M_Array_Shader_3(), // 92 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0.003, 2.5 + // def c1, 0, 1.05, 0, 0 + // def c2, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xyz, -r0, c123 + temp1.xyz = -temp0.xyz + EyePosition.xyz; + // mad r2, r0.xyxy, c0.z, v2.xyxy + temp2 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r2, r2, c2.xyzx + temp2 = temp2 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add r0.zw, r2.xyyw, r2.xyxz + temp0.zw = temp2.yw + temp2.xz; + // add oT0.x, r0.z, c12.x + o.texcoord.x = temp0.z + expr12.x; + // mov oT0.y, r0.w + o.texcoord.y = temp0.w; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r2, r1 + temp0.z = dot(temp2.xyz, temp1.xyz); + // add r0.z, -r0.z, c0.x + temp0.z = -temp0.z + float1(1); + // pow r1.x, r0.z, c0.w + temp1.x = pow(temp0.z, float1(2.5)); + // mul oT2.xyz, r1.x, c1.xyxw + o.texcoord2 = temp1.x * float4(0, 1.05, 0, 0); + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, c0.y + o.color = float4(0, 0, 0, 0); + // mov oT0.zw, v2.xyyx + o.texcoord.zw = i.texcoord.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + float3 temp3; + // def c0, 1, -1, 0.003, 2.5 + // def c1, 0, 1.05, 0, 0 + // def c2, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1, r0.xyxy, c0.z, v3.xyxy + temp1 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r1, r1, c2.xyzx + temp1 = temp1 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add r1.xy, r1.ywzw, r1.xzzw + temp1.xy = temp1.yw + temp1.xz; + // add oT0.x, r1.x, c12.x + o.texcoord.x = temp1.x + expr12.x; + // mov oT0.y, r1.y + o.texcoord.y = temp1.y; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.z, r3, r1 + temp0.z = dot(temp3.xyz, temp1.xyz); + // add r0.z, -r0.z, c0.x + temp0.z = -temp0.z + float1(1); + // pow r1.x, r0.z, c0.w + temp1.x = pow(temp0.z, float1(2.5)); + // mul oT2.xyz, r1.x, c1.xyxw + o.texcoord2 = temp1.x * float4(0, 1.05, 0, 0); + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, c2.w + o.color = float4(0, 0, 0, 0); + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 96 + compile vs_2_0 VS_L_Array_Shader_1(), // 97 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // def c0, 0, 0.22, 0.18, 2 + // dcl t1.xy + // dcl t2.xyz + // dcl_2d s0 + // texld r0, t1, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // add r1.xyz, t2, c0 + temp1.xyz = i.texcoord2.xyz + float3(0, 0.22, 0.18); + // min r2.xyz, c0.w, r1 + temp2.xyz = min(float3(2, 2, 2), temp1.xyz); + // mul r1.xyz, r2, c2 + temp1.xyz = temp2.xyz * TintColor.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2; + // def c0, 0, 0.22, 0.18, 2 + // dcl t1.xy + // dcl t2.xyz + // dcl_2d s0 + // texld r0, t1, s0 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // add r1.xyz, t2, c0 + temp1.xyz = i.texcoord2.xyz + float3(0, 0.22, 0.18); + // min r2.xyz, c0.w, r1 + temp2.xyz = min(float3(2, 2, 2), temp1.xyz); + // mul r1.xyz, r2, c2 + temp1.xyz = temp2.xyz * TintColor.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 98 + compile ps_2_0 PS_L_Array_Shader_1(), // 99 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 103 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 104 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 105 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 106 +}; +// _CreateDepthMap_Expression21 Expression_2_0 Has PRES False +float _CreateDepthMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateDepthMap_Expression22 Expression_2_0 Has PRES False +float _CreateDepthMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 85 + PixelShader = PS_H_Array[Default_Expression26()]; // 86 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 94 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 95 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 101 + PixelShader = ; // 102 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateDepthMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateDepthMap_Expression22()]; // 107 + PixelShader = PSCreateShadowMap_Array[_CreateDepthMap_Expression21()]; // 108 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsfrozen.fx b/objectsfrozen.fx new file mode 100644 index 0000000..9efd194 --- /dev/null +++ b/objectsfrozen.fx @@ -0,0 +1,5185 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture FractalNormalMap ; // 47 +sampler2D FractalNormalMapSampler = +sampler_state +{ + Texture = ; // 50 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 54 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 59 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 64 +sampler2D SpecMapSampler = +sampler_state +{ + Texture = ; // 66 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 74 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 77 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mov r1.xyz, c9 + temp1.xyz = DirectionalLight[2].Color.xyz; + // mad r0.xyz, r1, r0.x, c4 + temp0.xyz = temp1.xyz * temp0.xxx + AmbientLightColor.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 81 + compile vs_3_0 VS_H_Array_Shader_1(), // 82 +}; +// VS_H_Frozen_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Frozen_Array_Shader_0_Output VS_H_Frozen_Array_Shader_0(VS_H_Frozen_Array_Shader_0_Input i) +{ + VS_H_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 1, 0, 1.5, 0.5 + // def c2, 0.015, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // dp3 r2.x, v1, c124 + temp2.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v1, c125 + temp2.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v1, c126 + temp2.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.y + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r0.xyz, r3, v5 + temp0.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mad r0.xyz, r2, c0.z, r1 + temp0.xyz = temp2.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mul o1.xy, r0, c2.x + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.zw, v4.xyyx + o.texcoord.zw = i.texcoord.yx; + // dp3 r1.x, v3, c124 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // dp3 r1.x, v2, c124 + temp1.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r1.x + o.texcoord1.y = -temp1.x; + // dp3 r1.x, v3, c125 + temp1.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r1.x + o.texcoord2.x = -temp1.x; + // dp3 r1.x, v2, c125 + temp1.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r1.x + o.texcoord2.y = -temp1.x; + // dp3 r1.x, v3, c126 + temp1.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r1.x + o.texcoord3.x = -temp1.x; + // dp3 r1.x, v2, c126 + temp1.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r1.x + o.texcoord3.y = -temp1.x; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Frozen_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Frozen_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Frozen_Array_Shader_1_Output VS_H_Frozen_Array_Shader_1(VS_H_Frozen_Array_Shader_1_Input i) +{ + VS_H_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 1.5, 0 + // def c2, 0.5, 0.015, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.w + temp2.w = max(temp2.w, float1(0)); + // mov r3.xyz, c9 + temp3.xyz = DirectionalLight[2].Color.xyz; + // mad r3.xyz, r3, r2.w, c4 + temp3.xyz = temp3.xyz * temp2.www + AmbientLightColor.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r2, c0.z, r0 + temp0.xyz = temp2.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mul o1.xy, r0, c2.y + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.zzww + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Frozen_Array[2] = { + compile vs_3_0 VS_H_Frozen_Array_Shader_0(), // 83 + compile vs_3_0 VS_H_Frozen_Array_Shader_1(), // 84 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -3 + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c0.y, c0.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c0.wwzw + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v0, s4 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.x, c1.x + temp6.x = float1(0); + // cmp r6.yzw, -r4_abs.x, c89.xxyz, r6.x + temp6.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r6.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.xxx; + // cmp r8.xy, -r4_abs.x, c91, r6.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6.yzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.yzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.x + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r3, v0, s5 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r0, -r2.w, r1 + temp1.xyz = temp0.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -3 + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c0.y, c0.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c0.wwzw + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v0, s4 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.x, c1.x + temp6.x = float1(0); + // cmp r6.yzw, -r4_abs.x, c89.xxyz, r6.x + temp6.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r6.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.xxx; + // cmp r8.xy, -r4_abs.x, c91, r6.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6.yzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.yzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.x + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r3, v0, s5 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r0, -r2.w, r1 + temp1.xyz = temp0.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 85 + compile ps_3_0 PS_H_Array_Shader_1(), // 86 + compile ps_3_0 PS_H_Array_Shader_2(), // 87 + compile ps_3_0 PS_H_Array_Shader_3(), // 88 +}; +// PS_H_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_0(PS_H_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, 2, -1, 3, 1 + // def c1, 2.2, 0, 0, 0 + // def c2, 0.13, 0.33, 0.5, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6.w + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s2 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r2, c0.x, c0.y + temp0.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.zzww + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r2.xyz, r3, c1.x + temp2.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r3.xxyz, c5.xxyz + temp2.yzw = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2.x, r2.yzww + temp2.xyz = temp2.xxx * temp2.yzw; + // mul r2.xyz, r2, c2 + temp2.xyz = temp2.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, c5, r2 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz + temp2.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r2.x, c7 + temp2.xyz = temp2.xxx * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r2, c2, r1 + temp1.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r1.w, c3 + temp3 = temp1.w + float4(-0, -1, -2, -3); + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-4, -5, -6, -7); + // mov r5.y, c1.y + temp5.y = float1(0); + // cmp r5.xzw, -r3_abs.x, c89.xyyz, r5.y + temp5.xzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.yyy; + // cmp r6.xyz, -r3_abs.x, c90, r5.y + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.yyy; + // cmp r7.xy, -r3_abs.x, c91, r5.y + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.yy; + // cmp r5.xyz, -r3_abs.y, c92, r5.xzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.xzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.z, r2.w + temp3.z = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, -r3.x, r3.z + temp2.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r2.w, r2.w, -r3.x, c0.w + temp2.w = saturate(temp2.w * -temp3.x + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // dp3 r2.w, r0, r5 + temp2.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r3, r3.w, r2 + temp2.xyz = temp3.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, c2, r1 + temp0.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // texld r1, v5, s4 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_1(PS_H_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 2.2 + // def c2, 2, -1, 3, 1 + // def c3, 0.13, 0.33, 0.5, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7.w + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s3 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r2, c2.x, c2.y + temp0.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c2.zzww + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // texld r2, v5, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r3.xy, c11.zxzw, v5 + temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r3, r3, s0 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // add r3.yz, c11, v5.xxyw + temp3.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r4, r3.yzzw, s0 + temp4 = tex2D(ShadowMapSampler, temp3.yz); + // add r3.yz, c11.xwzw, v5.xxyw + temp3.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r5, r3.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp3.yz); + // mov r2.y, r3.x + temp2.y = temp3.x; + // mov r2.z, r4.x + temp2.z = temp4.x; + // mov r2.w, r5.x + temp2.w = temp5.x; + // add r2, r2, -v5.z + temp2 = temp2 + -i.texcoord5.z; + // cmp r2, r2, c1.x, c1.y + temp2 = (temp2 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, c2.w, r2 + temp1.w = dot(float4(1, 1, 1, 1), temp2); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.x, r1, r0 + temp2.x = dot(temp1.xyz, temp0.xyz); + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mad r1.xyz, r0, -r2.x, r1 + temp1.xyz = temp0.xyz * -temp2.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r2, r1, s2 + temp2 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r2, c5 + temp1.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r2.xyz, r3, c1.w + temp2.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r3 + temp2.xyz = temp1.www * temp3.xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r3.x, r2.w, c1.y + temp3.x = max(temp2.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r3.x, r2 + temp2.xyz = temp3.xxx * temp2.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, r1.w, r2 + temp1.xyz = temp1.xyz * temp1.www + temp2.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r2.x, c7 + temp2.xyz = temp2.xxx * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r2, c3, r1 + temp1.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r1.w, c0 + temp3 = temp1.w + float4(-0, -1, -2, -3); + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-4, -5, -6, -7); + // mov r5.y, c1.y + temp5.y = float1(0); + // cmp r5.xzw, -r3_abs.x, c89.xyyz, r5.y + temp5.xzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.yyy; + // cmp r6.xyz, -r3_abs.x, c90, r5.y + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.yyy; + // cmp r7.xy, -r3_abs.x, c91, r5.y + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.yy; + // cmp r5.xyz, -r3_abs.y, c92, r5.xzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.xzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.z, r2.w + temp3.z = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, -r3.x, r3.z + temp2.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r2.w, r2.w, -r3.x, c2.w + temp2.w = saturate(temp2.w * -temp3.x + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // dp3 r2.w, r0, r5 + temp2.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r3, r3.w, r2 + temp2.xyz = temp3.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, c2.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, c3, r1 + temp0.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // texld r1, v6, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_2(PS_H_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, 2, -1, 3, 1 + // def c1, 2.2, 0, 0, 0 + // def c2, 0.13, 0.33, 0.5, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6.w + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s2 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r2, c0.x, c0.y + temp0.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.zzww + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r2.xyz, r3, c1.x + temp2.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r3.xxyz, c5.xxyz + temp2.yzw = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2.x, r2.yzww + temp2.xyz = temp2.xxx * temp2.yzw; + // mul r2.xyz, r2, c2 + temp2.xyz = temp2.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, c5, r2 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz + temp2.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r2.x, c7 + temp2.xyz = temp2.xxx * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r2, c2, r1 + temp1.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r1.w, c3 + temp3 = temp1.w + float4(-0, -1, -2, -3); + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-4, -5, -6, -7); + // mov r5.y, c1.y + temp5.y = float1(0); + // cmp r5.xzw, -r3_abs.x, c89.xyyz, r5.y + temp5.xzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.yyy; + // cmp r6.xyz, -r3_abs.x, c90, r5.y + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.yyy; + // cmp r7.xy, -r3_abs.x, c91, r5.y + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.yy; + // cmp r5.xyz, -r3_abs.y, c92, r5.xzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.xzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.z, r2.w + temp3.z = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, -r3.x, r3.z + temp2.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r2.w, r2.w, -r3.x, c0.w + temp2.w = saturate(temp2.w * -temp3.x + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // dp3 r2.w, r0, r5 + temp2.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r3, r3.w, r2 + temp2.xyz = temp3.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, c2, r1 + temp0.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // texld r1, v5, s4 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Frozen_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Frozen_Array_Shader_3(PS_H_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 2.2 + // def c2, 2, -1, 3, 1 + // def c3, 0.13, 0.33, 0.5, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7.w + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s4 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s3 + temp2 = tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r2, c2.x, c2.y + temp0.xyz = temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c2.zzww + temp0.xyz = temp0.xyz * float3(3, 3, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // texld r2, v5, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r3.xy, c11.zxzw, v5 + temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r3, r3, s0 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // add r3.yz, c11, v5.xxyw + temp3.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r4, r3.yzzw, s0 + temp4 = tex2D(ShadowMapSampler, temp3.yz); + // add r3.yz, c11.xwzw, v5.xxyw + temp3.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r5, r3.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp3.yz); + // mov r2.y, r3.x + temp2.y = temp3.x; + // mov r2.z, r4.x + temp2.z = temp4.x; + // mov r2.w, r5.x + temp2.w = temp5.x; + // add r2, r2, -v5.z + temp2 = temp2 + -i.texcoord5.z; + // cmp r2, r2, c1.x, c1.y + temp2 = (temp2 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, c2.w, r2 + temp1.w = dot(float4(1, 1, 1, 1), temp2); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r2.x, r1, r0 + temp2.x = dot(temp1.xyz, temp0.xyz); + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mad r1.xyz, r0, -r2.x, r1 + temp1.xyz = temp0.xyz * -temp2.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r2, r1, s2 + temp2 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r2, c5 + temp1.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r3.x, r2.x + temp3.x = log2(temp2.x); + // log r3.y, r2.y + temp3.y = log2(temp2.y); + // log r3.z, r2.z + temp3.z = log2(temp2.z); + // mul r2.xyz, r3, c1.w + temp2.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r2.x + temp3.x = exp2(temp2.x); + // exp r3.y, r2.y + temp3.y = exp2(temp2.y); + // exp r3.z, r2.z + temp3.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r3 + temp2.xyz = temp1.www * temp3.xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r3.x, r2.w, c1.y + temp3.x = max(temp2.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r3.x, r2 + temp2.xyz = temp3.xxx * temp2.xyz; + // mul r2.xyz, r2, c3 + temp2.xyz = temp2.xyz * float3(0.13, 0.33, 0.5); + // mad r1.xyz, r1, r1.w, r2 + temp1.xyz = temp1.xyz * temp1.www + temp2.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r2.x, c7 + temp2.xyz = temp2.xxx * DirectionalLight[1].Color.xyz; + // mad r1.xyz, r2, c3, r1 + temp1.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mov r2.xyz, c1.y + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r1.w, c0 + temp3 = temp1.w + float4(-0, -1, -2, -3); + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-4, -5, -6, -7); + // mov r5.y, c1.y + temp5.y = float1(0); + // cmp r5.xzw, -r3_abs.x, c89.xyyz, r5.y + temp5.xzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.yyy; + // cmp r6.xyz, -r3_abs.x, c90, r5.y + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.yyy; + // cmp r7.xy, -r3_abs.x, c91, r5.y + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.yy; + // cmp r5.xyz, -r3_abs.y, c92, r5.xzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.xzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r5, r5 + temp2.w = dot(temp5.xyz, temp5.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.z, r2.w + temp3.z = 1.0f / temp2.w; + // mul r5.xyz, r5, r2.w + temp5.xyz = temp5.xyz * temp2.www; + // add r2.w, -r3.x, r3.z + temp2.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r2.w, r2.w, -r3.x, c2.w + temp2.w = saturate(temp2.w * -temp3.x + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.xyz, r4, r2.w + temp3.xyz = temp4.xyz * temp2.www; + // dp3 r2.w, r0, r5 + temp2.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r3, r3.w, r2 + temp2.xyz = temp3.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, c2.w + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, c3, r1 + temp0.xyz = temp2.xyz * float3(0.13, 0.33, 0.5) + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // texld r1, v6, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Frozen_Array[4] = { + compile ps_3_0 PS_H_Frozen_Array_Shader_0(), // 89 + compile ps_3_0 PS_H_Frozen_Array_Shader_1(), // 90 + compile ps_3_0 PS_H_Frozen_Array_Shader_2(), // 91 + compile ps_3_0 PS_H_Frozen_Array_Shader_3(), // 92 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c12.x + temp0.xy = temp0.xz * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 98 + compile vs_3_0 VS_M_Array_Shader_1(), // 99 +}; +// VS_M_Frozen_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Frozen_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Frozen_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Frozen_Array_Shader_0_Output VS_M_Frozen_Array_Shader_0(VS_M_Frozen_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Frozen_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, 1.5, 0.015 + // def c2, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mad r1.xyz, r0, c0.z, r1 + temp1.xyz = temp0.xyz * float3(1.5, 1.5, 1.5) + temp1.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r2.x, v3, c124 + temp2.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v3, c125 + temp2.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v3, c126 + temp2.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r2 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v2, c124 + temp3.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v2, c125 + temp3.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v2, c126 + temp3.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r3 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 o2.z, c6, r0 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp0.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r0 + temp2.z = dot(temp4.xyz, temp0.xyz); + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r2, r0.w + o.texcoord2 = temp2 * temp0.w; + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.x, r0, c8 + temp0.x = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.y, r0.w, c0.y + temp0.y = max(temp0.w, float1(0)); + // mul r0.yzw, r0.y, c9.xxyz + temp0.yzw = temp0.yyy * DirectionalLight[2].Color.xyz; + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c7, r0.x, r0.yzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.xxx + temp0.yzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // mul o1.xy, r1, c0.w + o.texcoord.xy = temp1.xy * float2(0.015, 0.015); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xy, c2 + temp0.xy = float2(1, -1); + // mul r0.xy, r0, c12.x + temp0.xy = temp0.xy * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.zw, v4.xyyx + o.texcoord.zw = i.texcoord.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o5.w, r0.w + o.texcoord4.w = temp0.w; + // mad o5.xyz, r0, r1.x, c2.zzww + o.texcoord4.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Frozen_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Frozen_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Frozen_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Frozen_Array_Shader_1_Output VS_M_Frozen_Array_Shader_1(VS_M_Frozen_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Frozen_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 1.5, 0 + // def c2, 0.015, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mad r0.xyz, r1, c0.z, r0 + temp0.xyz = temp1.xyz * float3(1.5, 1.5, 1.5) + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r2, v3.zxyy, c128[a0.x].yzxy + temp2 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.x, c6, -r2 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.y, c6, -r3 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 o2.z, c6, r1 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp1.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r1 + temp2.z = dot(temp4.xyz, temp1.xyz); + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r2, r1.w + o.texcoord2 = temp2 * temp1.w; + // dp3 r1.w, r1, c10 + temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.x, r1, c8 + temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r1.y, r1.w, c0.w + temp1.y = max(temp1.w, float1(0)); + // mul r1.yzw, r1.y, c9.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz; + // max r1.x, r1.x, c0.w + temp1.x = max(temp1.x, float1(0)); + // mad r1.xyz, c7, r1.x, r1.yzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // mul o1.xy, r0, c2.x + o.texcoord.xy = temp0.xy * float2(0.015, 0.015); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord.yx; + // mov o2.w, c0.w + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Frozen_Array[2] = { + compile vs_3_0 VS_M_Frozen_Array_Shader_0(), // 100 + compile vs_3_0 VS_M_Frozen_Array_Shader_1(), // 101 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(3, 3, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.x, c0.y + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c0.z + temp1.z = pow(temp0.w, float1(50)); + // cmp r0.w, -r1.x, c0.x, c0.y + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.y, r2.x, c1.x + temp1.y = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.y, c0.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, -c1.z, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c0.w + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(3, 3, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.x, c0.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c0.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c0.x, c0.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.w, r2.x, c1.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r1.y, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.y * temp0.w; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(3, 3, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.x, c0.y + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c0.z + temp1.z = pow(temp0.w, float1(50)); + // cmp r0.w, -r1.x, c0.x, c0.y + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.y, r2.x, c1.x + temp1.y = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -3 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.y, c0.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, -c1.z, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c0.w + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(3, 3, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.x, c0.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c0.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c0.x, c0.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.w, r2.x, c1.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r1.y, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.y * temp0.w; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 102 + compile ps_3_0 PS_M_Array_Shader_1(), // 103 + compile ps_3_0 PS_M_Array_Shader_2(), // 104 + compile ps_3_0 PS_M_Array_Shader_3(), // 105 +}; +// PS_M_Frozen_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_0(PS_M_Frozen_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3.w + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // mad_pp r0.xyz, r0.y, c2, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp0.yyy * float3(0.13, 0.33, 0.5) + temp0.xxx; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_1(PS_M_Frozen_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0.8, 2, -1, -3 + // def c1, 0, 1, 50, 0.25 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4.w + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s3 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.y, c0.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c0.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c0.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // mad_pp r0.xyz, r0.x, c2, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.13, 0.33, 0.5) + temp0.yyy; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_2(PS_M_Frozen_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -3 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3.w + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.y, c1.z + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, -c1.wwzw + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(3, 3, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.y, r1, v4 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.z, -r0.x, c0.x, c0.y + temp0.z = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.x, c0.z + temp1.x = pow(temp0.x, float1(50)); + // cmp r0.x, -r0.y, c0.x, c0.y + temp0.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0.zyzw, r0.x + temp0.xy = temp0.zy * temp0.xx; + // mul_pp r0.x, r1.x, r0.x + temp0.x = /* not implemented _pp modifier */ temp1.x * temp0.x; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c1.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.x, r0.x, r0.z + temp0.x = /* not implemented _pp modifier */ temp0.x * temp0.z; + // mad_pp r0.xyz, r0.y, c2, r0.x + temp0.xyz = /* not implemented _pp modifier */ temp0.yyy * float3(0.13, 0.33, 0.5) + temp0.xxx; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Frozen_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Frozen_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Frozen_Array_Shader_3(PS_M_Frozen_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0.8, 2, -1, -3 + // def c1, 0, 1, 50, 0.25 + // def c2, 0.13, 0.33, 0.5, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4.w + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s3 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.y, c1.x + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.y, c0.z + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yzw, r0, -c0.xwwz + temp0.yzw = /* not implemented _pp modifier */ temp0.yzw * float3(3, 3, 1); + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // dp3_pp r0.z, r1, v5 + temp0.z = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // cmp r0.w, -r0.y, c1.x, c1.y + temp0.w = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.x, r0.y, c1.z + temp1.x = pow(temp0.y, float1(50)); + // cmp r0.y, -r0.z, c1.x, c1.y + temp0.y = (-temp0.z >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.z, r0.y + temp1.y = /* not implemented _pp modifier */ temp0.z * temp0.y; + // mul r0.y, r0.w, r0.y + temp0.y = temp0.w * temp0.y; + // mul_pp r1.z, r1.x, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.x * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s4 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.z, r1.x, c0.x + temp0.z = /* not implemented _pp modifier */ temp1.x * float1(0.8); + // mul_pp r0.y, r0.y, r0.z + temp0.y = /* not implemented _pp modifier */ temp0.y * temp0.z; + // mad_pp r0.xyz, r0.x, c2, r0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(0.13, 0.33, 0.5) + temp0.yyy; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Frozen_Array[4] = { + compile ps_3_0 PS_M_Frozen_Array_Shader_0(), // 106 + compile ps_3_0 PS_M_Frozen_Array_Shader_1(), // 107 + compile ps_3_0 PS_M_Frozen_Array_Shader_2(), // 108 + compile ps_3_0 PS_M_Frozen_Array_Shader_3(), // 109 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 115 + compile vs_2_0 VS_L_Array_Shader_1(), // 116 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 117 + compile ps_2_0 PS_L_Array_Shader_1(), // 118 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 122 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 123 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 124 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 125 +}; +// _CreateShadowMap_Expression33 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression33() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression34 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression34() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression35 Expression_2_0 Has PRES False +float Default_L_Expression35() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression36 Expression_2_0 Has PRES False +float Default_M_Expression36() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression37 Expression_2_0 Has PRES False +float Default_M_Expression37() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression38 Expression_2_0 Has PRES False +float Default_M_Expression38() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression39 Expression_2_0 Has PRES False +float Default_M_Expression39() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression40 Expression_2_0 Has PRES False +float Default_Expression40() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression41 Expression_2_0 Has PRES False +float Default_Expression41() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression42 Expression_2_0 Has PRES False +float Default_Expression42() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression43 Expression_2_0 Has PRES False +float Default_Expression43() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression43()]; // 94 + PixelShader = PS_H_Array[Default_Expression42()]; // 95 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } + pass p1 + { + VertexShader = VS_H_Frozen_Array[Default_Expression41()]; // 96 + PixelShader = PS_H_Frozen_Array[Default_Expression40()]; // 97 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression39()]; // 111 + PixelShader = PS_M_Array[Default_M_Expression38()]; // 112 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } + pass p1 + { + VertexShader = VS_M_Frozen_Array[Default_M_Expression37()]; // 113 + PixelShader = PS_M_Frozen_Array[Default_M_Expression36()]; // 114 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression35()]; // 120 + PixelShader = ; // 121 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression34()]; // 126 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression33()]; // 127 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsgeneric.fx b/objectsgeneric.fx new file mode 100644 index 0000000..33d0131 --- /dev/null +++ b/objectsgeneric.fx @@ -0,0 +1,3024 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 47 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 49 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 52 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 57 +sampler2D SpecMapSampler = +sampler_state +{ + Texture = ; // 59 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale = { 1 }; +float3 AmbientColor : register(vs_2_0, c11) : register(vs_3_0, c11) = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor : register(vs_2_0, c12) : register(vs_3_0, c12) = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c13) : register(vs_3_0, c13) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 77 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 80 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * DiffuseColor.xyz; + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mad r3.xyz, r4, c11, r3 + temp3.xyz = temp4.xyz * AmbientColor.xyz + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c13 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 84 + compile vs_3_0 VS_H_Array_Shader_1(), // 85 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c12 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c11.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r3, -r1.w, r1 + temp1.xyz = temp3.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.x + temp4.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, 0.25, 0, 0, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c13 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c12.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, -c0.z, -c0.w + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.x + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r3, -r2.w, r1 + temp1.xyz = temp3.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, -c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, -c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c12 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c11.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r3, -r1.w, r1 + temp1.xyz = temp3.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.x + temp4.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, 0.25, 0, 0, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c13 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c12.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, -c0.z, -c0.w + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.x + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r3, -r2.w, r1 + temp1.xyz = temp3.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, -c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, -c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 86 + compile ps_3_0 PS_H_Array_Shader_1(), // 87 + compile ps_3_0 PS_H_Array_Shader_2(), // 88 + compile ps_3_0 PS_H_Array_Shader_3(), // 89 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r2, c11, r0 + temp0.xyz = temp2.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c13 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c14.x + temp0.xy = temp0.xz * expr14.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c14.x + temp1.xy = temp1.xy * expr14.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 93 + compile vs_3_0 VS_M_Array_Shader_1(), // 94 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c11.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.z, c0.w + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c14.x + temp1.z = pow(temp0.w, SpecularExponent.x); + // cmp r0.w, -r1.x, c0.z, c0.w + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.yzw, r2.x, c13.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r0.w, r1 + temp1.yzw = /* not implemented _pp modifier */ temp0.www * temp1.yzw; + // mul_pp r2.xyz, r0, c12 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.w, c0.z + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.x + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c12.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.z, c0.w + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c15.x + temp2.x = pow(temp1.x, SpecularExponent.x); + // cmp r1.x, -r1.y, c0.z, c0.w + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r2.xyz, r2.x, c14 + temp2.xyz = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r1.y, r2.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp1.yyy * temp2.xyz; + // mul_pp r2.xyz, r0, c13 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c11.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.z, c0.w + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c14.x + temp1.z = pow(temp0.w, SpecularExponent.x); + // cmp r0.w, -r1.x, c0.z, c0.w + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.yzw, r2.x, c13.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r0.w, r1 + temp1.yzw = /* not implemented _pp modifier */ temp0.www * temp1.yzw; + // mul_pp r2.xyz, r0, c12 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.w, c0.z + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.x + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c12.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.z, c0.w + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c15.x + temp2.x = pow(temp1.x, SpecularExponent.x); + // cmp r1.x, -r1.y, c0.z, c0.w + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r2.xyz, r2.x, c14 + temp2.xyz = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r1.y, r2.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp1.yyy * temp2.xyz; + // mul_pp r2.xyz, r0, c13 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 95 + compile ps_3_0 PS_M_Array_Shader_1(), // 96 + compile ps_3_0 PS_M_Array_Shader_2(), // 97 + compile ps_3_0 PS_M_Array_Shader_3(), // 98 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c13.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 102 + compile vs_2_0 VS_L_Array_Shader_1(), // 103 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 104 + compile ps_2_0 PS_L_Array_Shader_1(), // 105 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 109 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 110 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 111 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 112 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 91 + PixelShader = PS_H_Array[Default_Expression26()]; // 92 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 100 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 101 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 107 + PixelShader = ; // 108 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 113 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 114 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsgenericlightmap.fx b/objectsgenericlightmap.fx new file mode 100644 index 0000000..2d9a579 --- /dev/null +++ b/objectsgenericlightmap.fx @@ -0,0 +1,3160 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 47 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 49 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 52 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 57 +sampler2D SpecMapSampler = +sampler_state +{ + Texture = ; // 59 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture LightMap ; // 62 +sampler2D LightMapSampler = +sampler_state +{ + Texture = ; // 64 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 3; + AddressV = 3; +}; +float BumpScale = { 1 }; +float3 AmbientColor : register(vs_2_0, c11) : register(vs_3_0, c11) = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor : register(vs_2_0, c12) : register(vs_3_0, c12) = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c13) : register(vs_3_0, c13) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 82 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 85 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mul r0.xyz, r0, v6 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v6.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v7.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * DiffuseColor.xyz; + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mad r3.xyz, r4, c11, r3 + temp3.xyz = temp4.xyz * AmbientColor.xyz + temp3.xyz; + // mul r1.xyz, r3, v7 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c13 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 89 + compile vs_3_0 VS_H_Array_Shader_1(), // 90 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // def c4, 10, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c12 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c11.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r3, -r1.w, r1 + temp1.xyz = temp3.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.x + temp4.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // texld r3, v0.wzzw, s5 + temp3 = tex2D(LightMapSampler, i.texcoord.wz); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mad r2.xyz, r4, c4.x, r2 + temp2.xyz = temp4.xyz * float3(10, 10, 10) + temp2.xyz; + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, 0.25, 10, 0, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c13 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c12.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, -c0.z, -c0.w + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.x + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r3, -r2.w, r1 + temp1.xyz = temp3.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, -c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, -c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // texld r3, v0.wzzw, s6 + temp3 = tex2D(LightMapSampler, i.texcoord.wz); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mad r2.xyz, r4, c1.y, r2 + temp2.xyz = temp4.xyz * float3(10, 10, 10) + temp2.xyz; + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // def c4, 10, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c12 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c11.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r3, -r1.w, r1 + temp1.xyz = temp3.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.x + temp4.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // texld r3, v0.wzzw, s5 + temp3 = tex2D(LightMapSampler, i.texcoord.wz); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mad r2.xyz, r4, c4.x, r2 + temp2.xyz = temp4.xyz * float3(10, 10, 10) + temp2.xyz; + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, 0.25, 10, 0, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c13 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c12.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, -c0.z, -c0.w + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.x + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r3, -r2.w, r1 + temp1.xyz = temp3.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, -c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, -c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // texld r3, v0.wzzw, s6 + temp3 = tex2D(LightMapSampler, i.texcoord.wz); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mad r2.xyz, r4, c1.y, r2 + temp2.xyz = temp4.xyz * float3(10, 10, 10) + temp2.xyz; + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s7 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 91 + compile ps_3_0 PS_H_Array_Shader_1(), // 92 + compile ps_3_0 PS_H_Array_Shader_2(), // 93 + compile ps_3_0 PS_H_Array_Shader_3(), // 94 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_texcoord1 v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r2, c11, r0 + temp0.xyz = temp2.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v6 + o.color = temp0 * i.color; + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c13 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c14.x + temp0.xy = temp0.xz * expr14.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1.xy, v4 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v5.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_texcoord1 v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v7.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v7 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c14.x + temp1.xy = temp1.xy * expr14.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1.xy, v5 + o.texcoord.xy = i.texcoord.xy; + // mov o1.zw, v6.xyyx + o.texcoord.zw = i.texcoord1.yx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 98 + compile vs_3_0 VS_M_Array_Shader_1(), // 99 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0, 1 + // def c1, 10, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c11.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.z, c0.w + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c14.x + temp1.z = pow(temp0.w, SpecularExponent.x); + // cmp r0.w, -r1.x, c0.z, c0.w + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.yzw, r2.x, c13.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r0.w, r1 + temp1.yzw = /* not implemented _pp modifier */ temp0.www * temp1.yzw; + // mul_pp r2.xyz, r0, c12 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r3, v2.zwzw, s0 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r3 + temp1.xyz = temp1.xyz * temp3.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = /* not implemented _pp modifier */ tex2D(LightMapSampler, i.texcoord.wz); + // mul_pp r1.xyz, r2, r1 + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xyz; + // mad_pp r0.xyz, r1, c1.x, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(10, 10, 10) + temp0.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 10, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.w, c0.z + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.x + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c12.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.z, c0.w + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c15.x + temp2.x = pow(temp1.x, SpecularExponent.x); + // cmp r1.x, -r1.y, c0.z, c0.w + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r2.xyz, r2.x, c14 + temp2.xyz = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r1.y, r2.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp1.yyy * temp2.xyz; + // mul_pp r2.xyz, r0, c13 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r3, v2.zwzw, s1 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r3 + temp1.xyz = temp1.xyz * temp3.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = /* not implemented _pp modifier */ tex2D(LightMapSampler, i.texcoord.wz); + // mul_pp r1.xyz, r2, r1 + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xyz; + // mad_pp r0.xyz, r1, c1.y, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(10, 10, 10) + temp0.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0, 1 + // def c1, 10, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c11.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.z, c0.w + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c14.x + temp1.z = pow(temp0.w, SpecularExponent.x); + // cmp r0.w, -r1.x, c0.z, c0.w + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.yzw, r2.x, c13.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r0.w, r1 + temp1.yzw = /* not implemented _pp modifier */ temp0.www * temp1.yzw; + // mul_pp r2.xyz, r0, c12 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r3, v2.zwzw, s0 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r3 + temp1.xyz = temp1.xyz * temp3.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // texld r1, v0.wzzw, s4 + temp1 = /* not implemented _pp modifier */ tex2D(LightMapSampler, i.texcoord.wz); + // mul_pp r1.xyz, r2, r1 + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xyz; + // mad_pp r0.xyz, r1, c1.x, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(10, 10, 10) + temp0.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 10, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.w, c0.z + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.x + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c12.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.z, c0.w + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c15.x + temp2.x = pow(temp1.x, SpecularExponent.x); + // cmp r1.x, -r1.y, c0.z, c0.w + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r2.xyz, r2.x, c14 + temp2.xyz = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r1.y, r2.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp1.yyy * temp2.xyz; + // mul_pp r2.xyz, r0, c13 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r3, v2.zwzw, s1 + temp3 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r3 + temp1.xyz = temp1.xyz * temp3.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // texld r1, v0.wzzw, s5 + temp1 = /* not implemented _pp modifier */ tex2D(LightMapSampler, i.texcoord.wz); + // mul_pp r1.xyz, r2, r1 + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xyz; + // mad_pp r0.xyz, r1, c1.y, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(10, 10, 10) + temp0.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 100 + compile ps_3_0 PS_M_Array_Shader_1(), // 101 + compile ps_3_0 PS_M_Array_Shader_2(), // 102 + compile ps_3_0 PS_M_Array_Shader_3(), // 103 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c13.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 107 + compile vs_2_0 VS_L_Array_Shader_1(), // 108 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 109 + compile ps_2_0 PS_L_Array_Shader_1(), // 110 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 114 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 115 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 116 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 117 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 96 + PixelShader = PS_H_Array[Default_Expression26()]; // 97 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 105 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 106 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 112 + PixelShader = ; // 113 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 118 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 119 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsironcurtain.fx b/objectsironcurtain.fx new file mode 100644 index 0000000..d309478 --- /dev/null +++ b/objectsironcurtain.fx @@ -0,0 +1,2348 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture IronCurtainTexture ; // 47 +sampler2D IronCurtainTextureSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 50 + MipFilter = 2; + MinFilter = 2; + MagFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 54 +sampler2D DiffuseTextureSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 59 +sampler2D NormalMapSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale : register(ps_3_0, c11) = { 1 }; +float3 AmbientColor = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 77 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 80 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 o2.z, v1, c124 + o.texcoord1.z = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 o3.z, v1, c125 + o.texcoord2.z = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 o4.z, v1, c126 + o.texcoord3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mov o6.w, r1.x + o.texcoord5.w = temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.z, r1.x, r1.y, c0.z + o.texcoord5.z = temp1.x * temp1.y + float1(-0.0015); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1, r0.xyxy, c0.w, v4.xyxy + temp1 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r2, r1, c1.xyzx + temp2 = temp1 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // mul r1, r1, c1.xzyx + temp1 = temp1 * float4(0.43019223, -0.6143571, 0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // add o1.x, r0.w, c12.x + o.texcoord.x = temp0.w + expr12.x; + // add o1.w, r1.w, r1.z + o.texcoord.w = temp1.w + temp1.z; + // add r0.w, r1.y, r1.x + temp0.w = temp1.y + temp1.x; + // add o1.z, r0.w, c12.x + o.texcoord.z = temp0.w + expr12.x; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // mad r0.xy, r0, c117, -r1 + temp0.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o6.xy, v4 + o.texcoord5.xy = i.texcoord.xy; + // mov o8, c0.y + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3; + float addr0; + // def c0, 1, -1, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r1.x + temp1.y = 1.0f / temp1.x; + // mov o6.w, r1.x + o.texcoord5.w = temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.z, r1.x, r1.y, c0.z + o.texcoord5.z = temp1.x * temp1.y + float1(-0.0015); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1.xy, r0.yxzw, c0.w, v5.yxzw + temp1.xy = temp0.yx * float2(0.003, 0.003) + i.texcoord.yx; + // mul r2, r1.yxyx, c1.xyzx + temp2 = temp1.yxyx * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // mad o1.w, r1.y, c1.y, r2.w + o.texcoord.w = temp1.y * float1(0.6143571) + temp2.w; + // add o1.x, r0.w, c12.x + o.texcoord.x = temp0.w + expr12.x; + // mul r0.w, r1.x, c1.z + temp0.w = temp1.x * float1(-0.6143571); + // mad r0.w, r1.y, c1.x, r0.w + temp0.w = temp1.y * float1(0.43019223) + temp0.w; + // add o1.z, r0.w, c12.x + o.texcoord.z = temp0.w + expr12.x; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r0, v3.zxyy, c128[a0.x].yzxy + temp0 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.x].zxyz + temp1 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mov o2.y, -r1.x + o.texcoord1.y = -temp1.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r0.y + o.texcoord2.x = -temp0.y; + // mov o4.x, -r0.z + o.texcoord3.x = -temp0.z; + // mov o3.y, -r1.y + o.texcoord2.y = -temp1.y; + // mov o4.y, -r1.z + o.texcoord3.y = -temp1.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o6.xy, v5 + o.texcoord5.xy = i.texcoord.xy; + // mov o8, c1.w + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 84 + compile vs_3_0 VS_H_Array_Shader_1(), // 85 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 1 + // def c1, 2, 0.05, 0.025, 30 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v0, s0 + temp0 = tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // texld r0, v0.wzzw, s0 + temp0 = tex2D(IronCurtainTextureSampler, i.texcoord.wz); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // texld r1, v5, s1 + temp1 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(2, 0.05, 0.025); + // mad r0.xyz, r0, c1.w, r1 + temp0.xyz = temp0.xyz * float3(30, 30, 30) + temp1.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c0.w + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 1 + // def c1, 2, 0.05, 0.025, 30 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v0, s0 + temp0 = tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // texld r0, v0.wzzw, s0 + temp0 = tex2D(IronCurtainTextureSampler, i.texcoord.wz); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // texld r1, v5, s1 + temp1 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(2, 0.05, 0.025); + // mad r0.xyz, r0, c1.w, r1 + temp0.xyz = temp0.xyz * float3(30, 30, 30) + temp1.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c0.w + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 1 + // def c1, 2, 0.05, 0.025, 30 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v0, s0 + temp0 = tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // texld r0, v0.wzzw, s0 + temp0 = tex2D(IronCurtainTextureSampler, i.texcoord.wz); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // texld r1, v5, s1 + temp1 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(2, 0.05, 0.025); + // mad r0.xyz, r0, c1.w, r1 + temp0.xyz = temp0.xyz * float3(30, 30, 30) + temp1.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c0.w + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 1 + // def c1, 2, 0.05, 0.025, 30 + // dcl_texcoord v0 + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xy + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v0, s0 + temp0 = tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // texld r0, v0.wzzw, s0 + temp0 = tex2D(IronCurtainTextureSampler, i.texcoord.wz); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // texld r1, v5, s1 + temp1 = tex2D(NormalMapSampler, i.texcoord5.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c1 + temp1.xyz = temp0.www * float3(2, 0.05, 0.025); + // mad r0.xyz, r0, c1.w, r1 + temp0.xyz = temp0.xyz * float3(30, 30, 30) + temp1.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // mov oC0.w, c0.w + out_color.w = float1(1); + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 86 + compile ps_3_0 PS_H_Array_Shader_1(), // 87 + compile ps_3_0 PS_H_Array_Shader_2(), // 88 + compile ps_3_0 PS_H_Array_Shader_3(), // 89 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul c11.x, c1.x, (0.3) + expr11.x = Time.x * (0.3); + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3; + float3 temp4, temp5, temp6; + // def c0, 1, 0, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // def c2, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_texcoord6 o7.xyz + // dcl_color o8 + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r1.x, v3, c124 + temp1.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v3, c125 + temp1.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v3, c126 + temp1.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r5.xyz, r4, r1.w, c6 + temp5.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // mul r4.xyz, r4, r1.w + temp4.xyz = temp4.xyz * temp1.www; + // dp3 r6.x, r5, -r1 + temp6.x = dot(temp5.xyz, -temp1.xyz); + // dp3 o7.x, r4, -r1 + o.texcoord6.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r6.y, r5, -r2 + temp6.y = dot(temp5.xyz, -temp2.xyz); + // dp3 o7.y, r4, -r2 + o.texcoord6.y = dot(temp4.xyz, -temp2.xyz); + // dp3 o7.z, r4, r3 + o.texcoord6.z = dot(temp4.xyz, temp3.xyz); + // dp3 r6.z, r5, r3 + temp6.z = dot(temp5.xyz, temp3.xyz); + // dp3 r1.x, r6, r6 + temp1.x = dot(temp6.xyz, temp6.xyz); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // mul o3.xyz, r6, r1.x + o.texcoord2 = temp6 * temp1.x; + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.w, r0, c115 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mul r1.yz, r0.z, c117.xzww + temp1.yz = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // rcp r0.z, r1.x + temp0.z = 1.0f / temp1.x; + // mov o5.w, r1.x + o.texcoord4.w = temp1.x; + // mad o5.z, r0.w, r0.z, c0.z + o.texcoord4.z = temp0.w * temp0.z + float1(-0.0015); + // mad r2, r0.xyxy, c0.w, v4.xyxy + temp2 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r3, r2, c1.xyzx + temp3 = temp2 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // mul r2, r2, c1.xzyx + temp2 = temp2 * float4(0.43019223, -0.6143571, 0.6143571, 0.43019223); + // add o1.y, r3.w, r3.z + o.texcoord.y = temp3.w + temp3.z; + // add r0.z, r3.y, r3.x + temp0.z = temp3.y + temp3.x; + // add o1.x, r0.z, c11.x + o.texcoord.x = temp0.z + expr11.x; + // add o1.w, r2.w, r2.z + o.texcoord.w = temp2.w + temp2.z; + // add r0.z, r2.y, r2.x + temp0.z = temp2.y + temp2.x; + // add o1.z, r0.z, c11.x + o.texcoord.z = temp0.z + expr11.x; + // add r0.zw, r0.xyxy, c13 + temp0.zw = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0.zwzw, c13 + o.texcoord3.xy = temp0.zw * Shroud.ScaleUV_OffsetUV.xy; + // mad r0.zw, r0.xyxy, c117.xyxy, -r1.xyyz + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.yz; + // add o4.zw, r0, c118.xyxy + o.texcoord3.zw = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mov r1.x, c12.x + temp1.x = expr12.x; + // mul r0.zw, r1.x, c2.xyxy + temp0.zw = temp1.xx * float2(1, -1); + // mul o6.xy, r0, r0.zwzw + o.texcoord5 = temp0 * temp0.zwzw; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // mov o5.xy, v4 + o.texcoord4.xy = i.texcoord.xy; + // mov o8, c0.y + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul c11.x, c1.x, (0.3) + expr11.x = Time.x * (0.3); + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + float3 temp5, temp6; + // def c0, 1, -1, -0.0015, 0.003 + // def c1, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_texcoord6 o7.xyz + // dcl_color o8 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r5.xyz, r4, r1.w, c6 + temp5.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // mul r4.xyz, r4, r1.w + temp4.xyz = temp4.xyz * temp1.www; + // dp3 r6.x, r5, -r1 + temp6.x = dot(temp5.xyz, -temp1.xyz); + // dp3 o7.x, r4, -r1 + o.texcoord6.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r6.y, r5, -r2 + temp6.y = dot(temp5.xyz, -temp2.xyz); + // dp3 o7.y, r4, -r2 + o.texcoord6.y = dot(temp4.xyz, -temp2.xyz); + // dp3 o7.z, r4, r3 + o.texcoord6.z = dot(temp4.xyz, temp3.xyz); + // dp3 r6.z, r5, r3 + temp6.z = dot(temp5.xyz, temp3.xyz); + // dp3 r1.x, r6, r6 + temp1.x = dot(temp6.xyz, temp6.xyz); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // mul o3.xyz, r6, r1.x + o.texcoord2 = temp6 * temp1.x; + // dp4 r1.x, r0, c115 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.y, r0.w + temp1.y = 1.0f / temp0.w; + // mov o5.w, r0.w + o.texcoord4.w = temp0.w; + // mad o5.z, r1.x, r1.y, c0.z + o.texcoord4.z = temp1.x * temp1.y + float1(-0.0015); + // mad r1.xy, r0.yxzw, c0.w, v5.yxzw + temp1.xy = temp0.yx * float2(0.003, 0.003) + i.texcoord.yx; + // mul r2, r1.yxyx, c1.xyzx + temp2 = temp1.yxyx * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add o1.y, r2.w, r2.z + o.texcoord.y = temp2.w + temp2.z; + // add r0.w, r2.y, r2.x + temp0.w = temp2.y + temp2.x; + // mad o1.w, r1.y, c1.y, r2.w + o.texcoord.w = temp1.y * float1(0.6143571) + temp2.w; + // add o1.x, r0.w, c11.x + o.texcoord.x = temp0.w + expr11.x; + // mul r0.w, r1.x, c1.z + temp0.w = temp1.x * float1(-0.6143571); + // mad r0.w, r1.y, c1.x, r0.w + temp0.w = temp1.y * float1(0.43019223) + temp0.w; + // add o1.z, r0.w, c11.x + o.texcoord.z = temp0.w + expr11.x; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.zw, r0.z, c117 + temp0.zw = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.zw, r0.xyxy, c117.xyxy, -r0 + temp0.zw = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.zw; + // add o4.zw, r0, c118.xyxy + o.texcoord3.zw = temp0.zw + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r0.zw, r1.xyxy, c12.x + temp0.zw = temp1.xy * expr12.xx; + // mul o6.xy, r0, r0.zwzw + o.texcoord5 = temp0 * temp0.zwzw; + // mov o2.w, c1.w + o.texcoord1.w = float1(0); + // mov o5.xy, v5 + o.texcoord4.xy = i.texcoord.xy; + // mov o8, c1.w + o.color = float4(0, 0, 0, 0); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 93 + compile vs_3_0 VS_M_Array_Shader_1(), // 94 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 1, 5 + // def c1, 2, 0.05, 0.025, 0 + // dcl_texcoord v0 + // dcl_texcoord3 v1.xy + // dcl_texcoord4 v2.xy + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v2, s1 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v3, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul_pp r0.xyz, r0.x, c1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(2, 0.05, 0.025); + // texld r1, v0, s0 + temp1 = /* not implemented _pp modifier */ tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // texld r2, v0.wzzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(IronCurtainTextureSampler, i.texcoord.wz); + // mul_pp r1.xyz, r1, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r1, c0.w, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(5, 5, 5) + temp0.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.z + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 1, 5 + // def c1, 2, 0.05, 0.025, 0 + // dcl_texcoord v0 + // dcl_texcoord3 v1.xy + // dcl_texcoord4 v2.xy + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v2, s1 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v3, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul_pp r0.xyz, r0.x, c1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(2, 0.05, 0.025); + // texld r1, v0, s0 + temp1 = /* not implemented _pp modifier */ tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // texld r2, v0.wzzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(IronCurtainTextureSampler, i.texcoord.wz); + // mul_pp r1.xyz, r1, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r1, c0.w, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(5, 5, 5) + temp0.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.z + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 1, 5 + // def c1, 2, 0.05, 0.025, 0 + // dcl_texcoord v0 + // dcl_texcoord3 v1.xy + // dcl_texcoord4 v2.xy + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v2, s1 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v3, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul_pp r0.xyz, r0.x, c1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(2, 0.05, 0.025); + // texld r1, v0, s0 + temp1 = /* not implemented _pp modifier */ tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // texld r2, v0.wzzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(IronCurtainTextureSampler, i.texcoord.wz); + // mul_pp r1.xyz, r1, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r1, c0.w, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(5, 5, 5) + temp0.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.z + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float2 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 1, 5 + // def c1, 2, 0.05, 0.025, 0 + // dcl_texcoord v0 + // dcl_texcoord3 v1.xy + // dcl_texcoord4 v2.xy + // dcl_texcoord6 v3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v2, s1 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord4.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, v3, r1 + temp0.x = dot(i.texcoord6.xyz, temp1.xyz); + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul_pp r0.xyz, r0.x, c1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xxx * float3(2, 0.05, 0.025); + // texld r1, v0, s0 + temp1 = /* not implemented _pp modifier */ tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // texld r2, v0.wzzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(IronCurtainTextureSampler, i.texcoord.wz); + // mul_pp r1.xyz, r1, r2 + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r1, c0.w, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(5, 5, 5) + temp0.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.z + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 95 + compile ps_3_0 PS_M_Array_Shader_1(), // 96 + compile ps_3_0 PS_M_Array_Shader_2(), // 97 + compile ps_3_0 PS_M_Array_Shader_3(), // 98 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0.003, 0 + // def c1, 2, 0.05, 0.025, 0 + // def c2, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // mov r0.w, c0.x + temp0.w = float1(1); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.z, r1, c126 + temp0.z = dot(temp1, (World._m02_m12_m22_m32)); + // dp4 r0.x, r1, c124 + temp0.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r0.y, r1, c125 + temp0.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xyz, -r0, c123 + temp1.xyz = -temp0.xyz + EyePosition.xyz; + // mad r2, r0.xyxy, c0.z, v2.xyxy + temp2 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r2, r2, c2.xyzx + temp2 = temp2 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add r0.zw, r2.xyyw, r2.xyxz + temp0.zw = temp2.yw + temp2.xz; + // add oT0.x, r0.z, c12.x + o.texcoord.x = temp0.z + expr12.x; + // mov oT0.y, r0.w + o.texcoord.y = temp0.w; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r2, r1 + temp0.z = dot(temp2.xyz, temp1.xyz); + // add r0.z, -r0.z, c0.x + temp0.z = -temp0.z + float1(1); + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // mul oT2.xyz, r0.z, c1 + o.texcoord2 = temp0.z * float4(2, 0.05, 0.025, 0); + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, c0.y + o.color = float4(0, 0, 0, 0); + // mov oT0.zw, v2.xyyx + o.texcoord.zw = i.texcoord.yx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // mul c12.x, c0.x, (0.3) + expr12.x = Time.x * (0.3); + } + + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + float3 temp3; + // def c0, 1, -1, 0.003, 0 + // def c1, 2, 0.05, 0.025, 0 + // def c2, 0.4301922, 0.6143571, -0.6143571, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1, r0.xyxy, c0.z, v3.xyxy + temp1 = temp0.xyxy * float4(0.003, 0.003, 0.003, 0.003) + i.texcoord.xyxy; + // mul r1, r1, c2.xyzx + temp1 = temp1 * float4(0.43019223, 0.6143571, -0.6143571, 0.43019223); + // add r1.xy, r1.ywzw, r1.xzzw + temp1.xy = temp1.yw + temp1.xz; + // add oT0.x, r1.x, c12.x + o.texcoord.x = temp1.x + expr12.x; + // mov oT0.y, r1.y + o.texcoord.y = temp1.y; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.z, r3, r1 + temp0.z = dot(temp3.xyz, temp1.xyz); + // add r0.z, -r0.z, c0.x + temp0.z = -temp0.z + float1(1); + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // mul oT2.xyz, r0.z, c1 + o.texcoord2 = temp0.z * float4(2, 0.05, 0.025, 0); + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, c0.w + o.color = float4(0, 0, 0, 0); + // mov oT0.zw, v3.xyyx + o.texcoord.zw = i.texcoord.yx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 102 + compile vs_2_0 VS_L_Array_Shader_1(), // 103 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 5, 1, 0, 0 + // dcl t0 + // dcl t1.xy + // dcl t2.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s0 + temp0 = tex2D(IronCurtainTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mad r0.xyz, r0, c0.x, t2 + temp0.xyz = temp0.xyz * float3(5, 5, 5) + i.texcoord2.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov r0.w, c0.y + temp0.w = float1(1); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 5, 1, 0, 0 + // dcl t0 + // dcl t1.xy + // dcl t2.xyz + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xy, t0.wzyx + temp0.xy = i.texcoord.wz; + // texld r0, r0, s0 + temp0 = tex2D(IronCurtainTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(IronCurtainTextureSampler, i.texcoord.xy); + // texld r2, t1, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mad r0.xyz, r0, c0.x, t2 + temp0.xyz = temp0.xyz * float3(5, 5, 5) + i.texcoord2.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov r0.w, c0.y + temp0.w = float1(1); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 104 + compile ps_2_0 PS_L_Array_Shader_1(), // 105 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 109 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 110 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 111 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 112 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 91 + PixelShader = PS_H_Array[Default_Expression26()]; // 92 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 100 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 101 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 107 + PixelShader = ; // 108 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 113 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 114 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsjapan.fx b/objectsjapan.fx new file mode 100644 index 0000000..7555cf6 --- /dev/null +++ b/objectsjapan.fx @@ -0,0 +1,3045 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 49 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 51 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 54 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 59 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 69 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 72 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.1, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mov r1.z, c0.z + temp1.z = float1(0.1); + // mad r0.xyz, c4, r1.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp1.zzz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.5, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mov r2.w, c0.w + temp2.w = float1(0.1); + // mad r3.xyz, c4, r2.w, r3 + temp3.xyz = AmbientLightColor.xyz * temp2.www + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 76 + compile vs_3_0 VS_H_Array_Shader_1(), // 77 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v0, s4 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.x, c0.x + temp6.x = float1(0); + // cmp r6.yzw, -r4_abs.x, c89.xxyz, r6.x + temp6.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r6.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.xxx; + // cmp r8.xy, -r4_abs.x, c91, r6.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6.yzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.yzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -1.5 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r3, v0, s5 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r0, -r2.w, r1 + temp1.xyz = temp0.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // def c4, 2, 2.2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c4.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c4.x, c4.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c4.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r2.yzww, v6, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c4.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.x, c1.x + temp2.x = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.x + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r2.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.xxx; + // cmp r8.xy, -r4_abs.x, c91, r2.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c4.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.x + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c1, 1, 0, 0.25, 0 + // def c3, 2, 2.2, -1, -1.5 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c3.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c3.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.x, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r3.x, r1, r0 + temp3.x = dot(temp1.xyz, temp0.xyz); + // add r3.x, r3.x, r3.x + temp3.x = temp3.x + temp3.x; + // mad r1.xyz, r0, -r3.x, r1 + temp1.xyz = temp0.xyz * -temp3.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2.yzww, v7, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c9 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c3.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.y + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 78 + compile ps_3_0 PS_H_Array_Shader_1(), // 79 + compile ps_3_0 PS_H_Array_Shader_2(), // 80 + compile ps_3_0 PS_H_Array_Shader_3(), // 81 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 1, 0, 0.1, -1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mov r2.xzw, c0 + temp2.xzw = float3(1, 0.1, -1); + // mad r0.xyz, c4, r2.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp2.zzz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xy, r2.xwzw, c12.x + temp0.xy = temp2.xw * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mov r2.xyw, c0 + temp2.xyw = float3(1, -1, 0.1); + // mad r1.xyz, c4, r2.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp2.www + temp1.xyz; + // slt r2.z, v4.x, -v4.x + temp2.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.w, v4.x + temp2.w = frac(i.blendindices.x); + // add r3.x, -r2.w, v4.x + temp3.x = -temp2.w + i.blendindices.x; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r2.z, r2.z, r2.w, r3.x + temp2.z = temp2.z * temp2.w + temp3.x; + // add r2.z, r2.z, r2.z + temp2.z = temp2.z + temp2.z; + // mova a0.x, r2.z + addr0.x = temp2.z; + // mul r3.w, v6.w, c129[a0.x].w + temp3.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r3.xyz, v6 + temp3.xyz = i.color.xyz; + // mul o7, r1, r3 + o.color = temp1 * temp3; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r1.xy, r2, c12.x + temp1.xy = temp2.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 85 + compile vs_3_0 VS_M_Array_Shader_1(), // 86 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.x, c0.y + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c0.z + temp1.z = pow(temp0.w, float1(50)); + // cmp r0.w, -r1.x, c0.x, c0.y + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.y, r2.x, c1.x + temp1.y = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 50, 0.25 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.y, c0.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, -c1.z, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c0.w + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.x, c0.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c0.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c0.x, c0.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.w, r2.x, c1.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r1.y, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.y * temp0.w; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 50, 0 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c3.y, c3.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c3.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v4 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c1.x, c1.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c1.z + temp2.x = pow(temp1.x, float1(50)); + // cmp r1.x, -r1.y, c1.x, c1.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.x, r2.x, r1.x + temp1.x = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r0.w, r0.w, r1.x + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.x; + // mad_pp r1.xyz, r0, r1.y, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.yyy + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 50, 0.25 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c1.y, c1.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.x, -c3.z, r1 + temp1.x = dot(float4(1, 1, 1, 1), temp1); + // mul r1.x, r1.x, c1.w + temp1.x = temp1.x * float1(0.25); + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.yzw, r2.xxyz, c3.y, c3.z + temp1.yzw = /* not implemented _pp modifier */ temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.yzw, r1, -c3.xwwz + temp1.yzw = /* not implemented _pp modifier */ temp1.yzw * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1.yzww + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.yzww.xyz).xyz; + // dp3_pp r1.y, r2, v1 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.z, r2, v5 + temp1.z = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.w, -r1.y, c1.x, c1.y + temp1.w = (-temp1.y >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.y, c1.z + temp2.x = pow(temp1.y, float1(50)); + // cmp r1.y, -r1.z, c1.x, c1.y + temp1.y = (-temp1.z >= 0) ? float1(0) : float1(1); + // mul_pp r2.y, r1.z, r1.y + temp2.y = /* not implemented _pp modifier */ temp1.z * temp1.y; + // mul r1.y, r1.w, r1.y + temp1.y = temp1.w * temp1.y; + // mul_pp r2.z, r2.x, r1.y + temp2.z = /* not implemented _pp modifier */ temp2.x * temp1.y; + // mul_pp r1.xy, r1.x, r2.yzzw + temp1.xy = /* not implemented _pp modifier */ temp1.xx * temp2.yz; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 87 + compile ps_3_0 PS_M_Array_Shader_1(), // 88 + compile ps_3_0 PS_M_Array_Shader_2(), // 89 + compile ps_3_0 PS_M_Array_Shader_3(), // 90 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mov r0.z, c0.z + temp0.z = float1(0.1); + // mad r1.xyz, c4, r0.z, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.zzz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0.1 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mov r0.w, c0.w + temp0.w = float1(0.1); + // mad r1.xyz, c4, r0.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.www + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 94 + compile vs_2_0 VS_L_Array_Shader_1(), // 95 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s1 + temp0 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r3.xyz, r1, c0 + temp3.xyz = temp1.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r1 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r0.xyz, r0.z, r3, r1 + temp0.xyz = temp0.zzz * temp3.xyz + temp1.xyz; + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 96 + compile ps_2_0 PS_L_Array_Shader_1(), // 97 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 101 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 102 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 103 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 104 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression24 Expression_2_0 Has PRES False +float Default_L_Expression24() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression26 Expression_2_0 Has PRES False +float Default_M_Expression26() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression28()]; // 83 + PixelShader = PS_H_Array[Default_Expression27()]; // 84 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression26()]; // 92 + PixelShader = PS_M_Array[Default_M_Expression25()]; // 93 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression24()]; // 99 + PixelShader = PS_L_Array[Default_L_Expression23()]; // 100 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 105 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 106 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsroads.fx b/objectsroads.fx new file mode 100644 index 0000000..33d0131 --- /dev/null +++ b/objectsroads.fx @@ -0,0 +1,3024 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 29 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 38 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 47 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 49 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 52 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 57 +sampler2D SpecMapSampler = +sampler_state +{ + Texture = ; // 59 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale = { 1 }; +float3 AmbientColor : register(vs_2_0, c11) : register(vs_3_0, c11) = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor : register(vs_2_0, c12) : register(vs_3_0, c12) = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c13) : register(vs_3_0, c13) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 77 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 80 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * DiffuseColor.xyz; + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mad r3.xyz, r4, c11, r3 + temp3.xyz = temp4.xyz * AmbientColor.xyz + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c13 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 84 + compile vs_3_0 VS_H_Array_Shader_1(), // 85 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c12 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c11.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r3, -r1.w, r1 + temp1.xyz = temp3.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.x + temp4.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, 0.25, 0, 0, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c13 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c12.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, -c0.z, -c0.w + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.x + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r3, -r2.w, r1 + temp1.xyz = temp3.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, -c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, -c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c12 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c11.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r3, -r1.w, r1 + temp1.xyz = temp3.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.x + temp4.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, 0.25, 0, 0, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c13 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c12.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, -c0.z, -c0.w + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c1.x + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r3, -r2.w, r1 + temp1.xyz = temp3.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, -c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, -c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 86 + compile ps_3_0 PS_H_Array_Shader_1(), // 87 + compile ps_3_0 PS_H_Array_Shader_2(), // 88 + compile ps_3_0 PS_H_Array_Shader_3(), // 89 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r2, c11, r0 + temp0.xyz = temp2.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c13 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c14.x + temp0.xy = temp0.xz * expr14.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c14.x, r0.x + expr14.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o7, r1, r2 + o.color = temp1 * temp2; + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c13 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c14.x + temp1.xy = temp1.xy * expr14.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c0.zzww + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 93 + compile vs_3_0 VS_M_Array_Shader_1(), // 94 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c11.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.z, c0.w + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c14.x + temp1.z = pow(temp0.w, SpecularExponent.x); + // cmp r0.w, -r1.x, c0.z, c0.w + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.yzw, r2.x, c13.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r0.w, r1 + temp1.yzw = /* not implemented _pp modifier */ temp0.www * temp1.yzw; + // mul_pp r2.xyz, r0, c12 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.w, c0.z + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.x + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c12.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.z, c0.w + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c15.x + temp2.x = pow(temp1.x, SpecularExponent.x); + // cmp r1.x, -r1.y, c0.z, c0.w + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r2.xyz, r2.x, c14 + temp2.xyz = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r1.y, r2.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp1.yyy * temp2.xyz; + // mul_pp r2.xyz, r0, c13 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c11.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.z, c0.w + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c14.x + temp1.z = pow(temp0.w, SpecularExponent.x); + // cmp r0.w, -r1.x, c0.z, c0.w + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.yzw, r2.x, c13.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r0.w, r1 + temp1.yzw = /* not implemented _pp modifier */ temp0.www * temp1.yzw; + // mul_pp r2.xyz, r0, c12 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.w, c0.z + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.x + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c0.x, c0.y + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xy, r1, c12.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * BumpScale.xx; + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.z, c0.w + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c15.x + temp2.x = pow(temp1.x, SpecularExponent.x); + // cmp r1.x, -r1.y, c0.z, c0.w + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r2.xyz, r2.x, c14 + temp2.xyz = /* not implemented _pp modifier */ temp2.xxx * SpecularColor.xyz; + // mul_pp r1.yzw, r1.y, r2.xxyz + temp1.yzw = /* not implemented _pp modifier */ temp1.yyy * temp2.xyz; + // mul_pp r2.xyz, r0, c13 + temp2.xyz = /* not implemented _pp modifier */ temp0.xyz * DiffuseColor.xyz; + // mad_pp r1.xyz, r2, r1.x, r1.yzww + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xxx + temp1.yzw; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 95 + compile ps_3_0 PS_M_Array_Shader_1(), // 96 + compile ps_3_0 PS_M_Array_Shader_2(), // 97 + compile ps_3_0 PS_M_Array_Shader_3(), // 98 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c13.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 102 + compile vs_2_0 VS_L_Array_Shader_1(), // 103 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 104 + compile ps_2_0 PS_L_Array_Shader_1(), // 105 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 109 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 110 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 111 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 112 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression24 Expression_2_0 Has PRES False +float Default_M_Expression24() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression26 Expression_2_0 Has PRES False +float Default_Expression26() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression27()]; // 91 + PixelShader = PS_H_Array[Default_Expression26()]; // 92 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression25()]; // 100 + PixelShader = PS_M_Array[Default_M_Expression24()]; // 101 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression23()]; // 107 + PixelShader = ; // 108 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 113 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 114 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectssoviet.fx b/objectssoviet.fx new file mode 100644 index 0000000..3361864 --- /dev/null +++ b/objectssoviet.fx @@ -0,0 +1,3045 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture DiffuseTexture ; // 49 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 51 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 54 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 56 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 59 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 61 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 69 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 72 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.1, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mov r1.z, c0.z + temp1.z = float1(0.1); + // mad r0.xyz, c4, r1.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp1.zzz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.wwwy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0.5, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c2.x + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mov r2.w, c0.w + temp2.w = float1(0.1); + // mad r3.xyz, c4, r2.w, r3 + temp3.xyz = AmbientLightColor.xyz * temp2.www + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c11 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.yyzw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 76 + compile vs_3_0 VS_H_Array_Shader_1(), // 77 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, 0, 1, 2, 3 + // def c1, -4, -5, -6, -7 + // def c3, 2.2, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v0, s4 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c0.x + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c0.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c0.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c1 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.x, c0.x + temp6.x = float1(0); + // cmp r6.yzw, -r4_abs.x, c89.xxyz, r6.x + temp6.yzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r6.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.xxx; + // cmp r8.xy, -r4_abs.x, c91, r6.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6.yzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.yzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c0.x + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c0, -0, -1, -2, -3 + // def c1, 1, 0, 0.25, 0 + // def c3, 2.2, 2, -1, -1.5 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.y, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // texld r3, v0, s5 + temp3 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r0 + temp2.w = dot(temp1.xyz, temp0.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r0, -r2.w, r1 + temp1.xyz = temp0.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r3.x, r1 + temp1.xyz = temp3.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2, r2.w + temp4.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.w, r1.w, c1.y + temp2.w = max(temp1.w, float1(0)); + // mul r3.xyz, r2, r2.w + temp3.xyz = temp2.xyz * temp2.www; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c0 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c3.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r0, r6 + temp2.w = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.w, c1.y + temp3.w = max(temp2.w, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2, r1 + temp0.xyz = temp3.xyz * temp2.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c1, 0, 1, 2, 3 + // def c3, -4, -5, -6, -7 + // def c4, 2, 2.2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c4.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c4.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c4.x, c4.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c4.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // dp3 r1.w, r1, r0 + temp1.w = dot(temp1.xyz, temp0.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r0, -r1.w, r1 + temp1.xyz = temp0.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r2.yzww, v6, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v5.zwzw, s0 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c4.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.x + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.x + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.x + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, -c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.x, c1.x + temp2.x = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.x + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.xxx; + // cmp r7.xyz, -r4_abs.x, c90, r2.x + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.xxx; + // cmp r8.xy, -r4_abs.x, c91, r2.x + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.xx; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c4.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.x + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c4.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + float2 temp8; + // def c1, 1, 0, 0.25, 0 + // def c3, 2, 2.2, -1, -1.5 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c3.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c3.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r3, c3.x, c3.z + temp0.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(1.5, 1.5, 1); + // dp3 r3.x, r0, v1 + temp3.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r3.y, r0, v2 + temp3.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r3.z, r0, v3 + temp3.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r3 + temp0.xyz = normalize(temp3.xyz).xyz; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r4.xy, c11.zxzw, v5 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r4, s0 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r4.yzzw, s0 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v5.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r4.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c1.x, c1.y + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c3.z, r3 + temp1.w = dot(float4(1, 1, 1, 1), temp3); + // mul r1.w, r1.w, c1.z + temp1.w = temp1.w * float1(0.25); + // dp3 r3.x, r1, r0 + temp3.x = dot(temp1.xyz, temp0.xyz); + // add r3.x, r3.x, r3.x + temp3.x = temp3.x + temp3.x; + // mad r1.xyz, r0, -r3.x, r1 + temp1.xyz = temp0.xyz * -temp3.xxx + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r3, r1, s2 + temp3 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2.yzww, v7, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r3, v6.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.y + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r1.w, r4 + temp3.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r0, c6 + temp1.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r2.yzww, r2.x + temp4.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, r3, r4, r1 + temp1.xyz = temp3.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r0, c8 + temp1.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.y + temp2.x = max(temp1.w, float1(0)); + // mul r3.xyz, r2.yzww, r2.x + temp3.xyz = temp2.yzw * temp2.xxx; + // mad r1.xyz, c7, r3, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp3.xyz + temp1.xyz; + // mov r3.xyz, c1.y + temp3.xyz = float3(0, 0, 0); + // mov r1.w, c1.y + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c9 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r6.y, c1.y + temp6.y = float1(0); + // cmp r6.xzw, -r4_abs.x, c89.xyyz, r6.y + temp6.xzw = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r4_abs.x, c90, r6.y + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r8.xy, -r4_abs.x, c91, r6.y + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r4_abs.y, c92, r6.xzww + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.x, r6, r6 + temp2.x = dot(temp6.xyz, temp6.xyz); + // rsq r2.x, r2.x + temp2.x = 1 / sqrt(temp2.x); + // rcp r3.w, r2.x + temp3.w = 1.0f / temp2.x; + // mul r6.xyz, r6, r2.x + temp6.xyz = temp6.xyz * temp2.xxx; + // add r2.x, -r4.x, r3.w + temp2.x = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.x, r2.x, -r3.w, -c3.z + temp2.x = saturate(temp2.x * -temp3.w + float1(1)); + // mul r2.x, r2.x, r2.x + temp2.x = temp2.x * temp2.x; + // mul r4.xyz, r5, r2.x + temp4.xyz = temp5.xyz * temp2.xxx; + // dp3 r2.x, r0, r6 + temp2.x = dot(temp0.xyz, temp6.xyz); + // max r3.w, r2.x, c1.y + temp3.w = max(temp2.x, float1(0)); + // mad r3.xyz, r4, r3.w, r3 + temp3.xyz = temp4.xyz * temp3.www + temp3.xyz; + // add r1.w, r1.w, -c3.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r3, r2.yzww, r1 + temp0.xyz = temp3.xyz * temp2.yzw + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 78 + compile ps_3_0 PS_H_Array_Shader_1(), // 79 + compile ps_3_0 PS_H_Array_Shader_2(), // 80 + compile ps_3_0 PS_H_Array_Shader_3(), // 81 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + float3 temp3, temp4; + // def c0, 1, 0, 0.1, -1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r4, r0.w, c6 + temp4.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.x, r4, -r0 + temp0.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r0.y, r4, -r2 + temp0.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r0.z, r4, r3 + temp0.z = dot(temp4.xyz, temp3.xyz); + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o3.xyz, r0, r0.w + o.texcoord2 = temp0 * temp0.w; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mov r2.xzw, c0 + temp2.xzw = float3(1, 0.1, -1); + // mad r0.xyz, c4, r2.z, r0 + temp0.xyz = AmbientLightColor.xyz * temp2.zzz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o7, r0, v5 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c11 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mul r0.xy, r2.xwzw, c12.x + temp0.xy = temp2.xw * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c2.xxyw + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.1 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_color o7 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r4, -r1 + temp1.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r1.y, r4, -r2 + temp1.y = dot(temp4.xyz, -temp2.xyz); + // dp3 r1.z, r4, r3 + temp1.z = dot(temp4.xyz, temp3.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o3.xyz, r1, r1.w + o.texcoord2 = temp1 * temp1.w; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mov r2.xyw, c0 + temp2.xyw = float3(1, -1, 0.1); + // mad r1.xyz, c4, r2.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp2.www + temp1.xyz; + // slt r2.z, v4.x, -v4.x + temp2.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.w, v4.x + temp2.w = frac(i.blendindices.x); + // add r3.x, -r2.w, v4.x + temp3.x = -temp2.w + i.blendindices.x; + // slt r2.w, -r2.w, r2.w + temp2.w = (-temp2.w < temp2.w) ? 1 : 0; + // mad r2.z, r2.z, r2.w, r3.x + temp2.z = temp2.z * temp2.w + temp3.x; + // add r2.z, r2.z, r2.z + temp2.z = temp2.z + temp2.z; + // mova a0.x, r2.z + addr0.x = temp2.z; + // mul r3.w, v6.w, c129[a0.x].w + temp3.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r3.xyz, v6 + temp3.xyz = i.color.xyz; + // mul o7, r1, r3 + o.color = temp1 * temp3; + // add r1.xy, r0, c11.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c11 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mul r1.xy, r2, c12.x + temp1.xy = temp2.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.xxyw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 85 + compile vs_3_0 VS_M_Array_Shader_1(), // 86 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 45, 0 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r0.w, r2, v1 + temp0.w = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.x, r2, v4 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.y, -r0.w, c0.x, c0.y + temp1.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // pow r1.z, r0.w, c0.z + temp1.z = pow(temp0.w, float1(45)); + // cmp r0.w, -r1.x, c0.x, c0.y + temp0.w = (-temp1.x >= 0) ? float1(0) : float1(1); + // mul_pp r1.x, r1.x, r0.w + temp1.x = /* not implemented _pp modifier */ temp1.x * temp0.w; + // mul r0.w, r1.y, r0.w + temp0.w = temp1.y * temp0.w; + // mul_pp r0.w, r1.z, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.z * temp0.w; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.y, r2.x, c1.x + temp1.y = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 1, 45, 0.25 + // def c1, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c0.y, c0.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, -c1.z, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c0.w + temp0.w = temp0.w * float1(0.25); + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c1.y, c1.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c1.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v5 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c0.x, c0.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c0.z + temp2.x = pow(temp1.x, float1(45)); + // cmp r1.x, -r1.y, c0.x, c0.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.w, r2.x, r1.x + temp1.w = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r1.xy, r0.w, r1.ywzw + temp1.xy = /* not implemented _pp modifier */ temp0.ww * temp1.yw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r0.w, r2.x, c1.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // mul_pp r0.w, r1.y, r0.w + temp0.w = /* not implemented _pp modifier */ temp1.y * temp0.w; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 45, 0 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_color v3 + // dcl_texcoord1_centroid v4.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s1 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.xyz, r1, c3.y, c3.z + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.xyz, r1, -c3.wwzw + temp1.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1 + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.xyz).xyz; + // dp3_pp r1.x, r2, v1 + temp1.x = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.y, r2, v4 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.z, -r1.x, c1.x, c1.y + temp1.z = (-temp1.x >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.x, c1.z + temp2.x = pow(temp1.x, float1(45)); + // cmp r1.x, -r1.y, c1.x, c1.y + temp1.x = (-temp1.y >= 0) ? float1(0) : float1(1); + // mul r1.xy, r1.zyzw, r1.x + temp1.xy = temp1.zy * temp1.xx; + // mul_pp r1.x, r2.x, r1.x + temp1.x = /* not implemented _pp modifier */ temp2.x * temp1.x; + // mul_pp r0.w, r0.w, r1.x + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.x; + // mad_pp r1.xyz, r0, r1.y, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.yyy + temp0.www; + // texld r2, v2.zwzw, s0 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v3, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c1, 0, 1, 45, 0.25 + // def c3, 0.8, 2, -1, -1.5 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_color v4 + // dcl_texcoord1_centroid v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp oC0.w, r0.w, v4.w + out_color.w = /* not implemented _pp modifier */ temp0.w * i.color.w; + // mul r1.xyz, r0, c0 + temp1.xyz = temp0.xyz * RecolorColor.xyz; + // mad r1.xyz, r1, c3.y, -r0 + temp1.xyz = temp1.xyz * float3(2, 2, 2) + -temp0.xyz; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r2.z, r1, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.zzz * temp1.xyz + temp0.xyz; + // mul_pp r0.w, r2.x, c3.x + temp0.w = /* not implemented _pp modifier */ temp2.x * float1(0.8); + // add r1.xy, c11.zxzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v3 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v3, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v3.z + temp1 = temp1 + -i.texcoord4.z; + // cmp r1, r1, c1.y, c1.x + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.x, -c3.z, r1 + temp1.x = dot(float4(1, 1, 1, 1), temp1); + // mul r1.x, r1.x, c1.w + temp1.x = temp1.x * float1(0.25); + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r1.yzw, r2.xxyz, c3.y, c3.z + temp1.yzw = /* not implemented _pp modifier */ temp2.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r1.yzw, r1, -c3.xwwz + temp1.yzw = /* not implemented _pp modifier */ temp1.yzw * float3(1.5, 1.5, 1); + // nrm_pp r2.xyz, r1.yzww + temp2.xyz = /* not implemented _pp modifier */ normalize(temp1.yzww.xyz).xyz; + // dp3_pp r1.y, r2, v1 + temp1.y = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord2.xyz); + // dp3_pp r1.z, r2, v5 + temp1.z = /* not implemented _pp modifier */ dot(temp2.xyz, i.texcoord1.xyz); + // cmp r1.w, -r1.y, c1.x, c1.y + temp1.w = (-temp1.y >= 0) ? float1(0) : float1(1); + // pow r2.x, r1.y, c1.z + temp2.x = pow(temp1.y, float1(45)); + // cmp r1.y, -r1.z, c1.x, c1.y + temp1.y = (-temp1.z >= 0) ? float1(0) : float1(1); + // mul_pp r2.y, r1.z, r1.y + temp2.y = /* not implemented _pp modifier */ temp1.z * temp1.y; + // mul r1.y, r1.w, r1.y + temp1.y = temp1.w * temp1.y; + // mul_pp r2.z, r2.x, r1.y + temp2.z = /* not implemented _pp modifier */ temp2.x * temp1.y; + // mul_pp r1.xy, r1.x, r2.yzzw + temp1.xy = /* not implemented _pp modifier */ temp1.xx * temp2.yz; + // mul_pp r0.w, r0.w, r1.y + temp0.w = /* not implemented _pp modifier */ temp0.w * temp1.y; + // mad_pp r1.xyz, r0, r1.x, r0.w + temp1.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx + temp0.www; + // texld r2, v2.zwzw, s1 + temp2 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, r2 + temp1.xyz = temp1.xyz * temp2.xyz; + // mad_pp r0.xyz, r0, v4, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * i.color.xyz + temp1.xyz; + // mul_pp r0.xyz, r0, c2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * TintColor.xyz; + // texld r1, v2, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 87 + compile ps_3_0 PS_M_Array_Shader_1(), // 88 + compile ps_3_0 PS_M_Array_Shader_2(), // 89 + compile ps_3_0 PS_M_Array_Shader_3(), // 90 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0.1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mov r0.z, c0.z + temp0.z = float1(0.1); + // mad r1.xyz, c4, r0.z, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.zzz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0.1 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c11.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mov r0.w, c0.w + temp0.w = float1(0.1); + // mad r1.xyz, c4, r0.w, r1 + temp1.xyz = AmbientLightColor.xyz * temp0.www + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 94 + compile vs_2_0 VS_L_Array_Shader_1(), // 95 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s1 + temp0 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r3.xyz, r1, c0 + temp3.xyz = temp1.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r1 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r0.xyz, r0.z, r3, r1 + temp0.xyz = temp0.zzz * temp3.xyz + temp1.xyz; + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 96 + compile ps_2_0 PS_L_Array_Shader_1(), // 97 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 101 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 102 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 103 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 104 +}; +// _CreateShadowMap_Expression21 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression21() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression22 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression22() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression23 Expression_2_0 Has PRES False +float Default_L_Expression23() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression24 Expression_2_0 Has PRES False +float Default_L_Expression24() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression25 Expression_2_0 Has PRES False +float Default_M_Expression25() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression26 Expression_2_0 Has PRES False +float Default_M_Expression26() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression27 Expression_2_0 Has PRES False +float Default_Expression27() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression28 Expression_2_0 Has PRES False +float Default_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression28()]; // 83 + PixelShader = PS_H_Array[Default_Expression27()]; // 84 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression26()]; // 92 + PixelShader = PS_M_Array[Default_M_Expression25()]; // 93 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression24()]; // 99 + PixelShader = PS_L_Array[Default_L_Expression23()]; // 100 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression22()]; // 105 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression21()]; // 106 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectsterrain.fx b/objectsterrain.fx new file mode 100644 index 0000000..fca2591 --- /dev/null +++ b/objectsterrain.fx @@ -0,0 +1,1464 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(ps_3_0, c5) : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 17 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 30 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 34 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 39 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 41 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 44 +sampler2D NormalMapSampler = +sampler_state +{ + Texture = ; // 46 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 49 +sampler2D SpecMapSampler = +sampler_state +{ + Texture = ; // 51 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 56 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 59 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES True +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c11.x, r0.x + expr11.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + float2 temp7; + // def c0, -4, -5, -6, -7 + // def c1, 50, 1, -1, 0 + // def c2, 0, 1, 2, 3 + // def c3, 2.2, 2, -1, -0.75 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_texcoord7 v6.xyz + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c3.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // texld r0, v0, s3 + temp0 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r0, c3.y, c3.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c3.wwzw + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mov r2.yzw, v7.xxyz + temp2.yzw = i.color.xyz; + // mov r0.w, c2.x + temp0.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r0.w, -c2 + temp3 = temp0.w + float4(-0, -1, -2, -3); + // add r4, r0.w, c0 + temp4 = temp0.w + float4(-4, -5, -6, -7); + // mov r5.x, c2.x + temp5.x = float1(0); + // cmp r5.yzw, -r3_abs.x, c89.xxyz, r5.x + temp5.yzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.xxx; + // cmp r6.xyz, -r3_abs.x, c90, r5.x + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.xxx; + // cmp r7.xy, -r3_abs.x, c91, r5.x + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.xx; + // cmp r5.xyz, -r3_abs.y, c92, r5.yzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.yzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r1.w, r5, r5 + temp1.w = dot(temp5.xyz, temp5.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r3.z, r1.w + temp3.z = 1.0f / temp1.w; + // mul r5.xyz, r5, r1.w + temp5.xyz = temp5.xyz * temp1.www; + // add r1.w, -r3.x, r3.z + temp1.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r1.w, r1.w, -r3.x, -c3.z + temp1.w = saturate(temp1.w * -temp3.x + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r3.xyz, r4, r1.w + temp3.xyz = temp4.xyz * temp1.www; + // dp3 r1.w, r0, r5 + temp1.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r1.w, c2.x + temp3.w = max(temp1.w, float1(0)); + // mad r2.yzw, r3.xxyz, r3.w, r2 + temp2.yzw = temp3.xyz * temp3.www + temp2.yzw; + // add r0.w, r0.w, -c3.z + temp0.w = temp0.w + float1(1); + // endrep + } + // mul r2.yzw, r1.xxyz, r2 + temp2.yzw = temp1.xyz * temp2.yzw; + // add r2.yzw, r2, r2 + temp2.yzw = temp2.yzw + temp2.yzw; + // dp3 r0.w, r0, c6 + temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.x, r0, v6 + temp0.x = dot(temp0.xyz, i.texcoord7.xyz); + // cmp r0.y, -r0.w, c2.x, c2.y + temp0.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // mul r0.z, r0.w, r0.y + temp0.z = temp0.w * temp0.y; + // cmp r0.w, -r0.x, c2.x, c2.y + temp0.w = (-temp0.x >= 0) ? float1(0) : float1(1); + // mul r0.y, r0.y, r0.w + temp0.y = temp0.y * temp0.w; + // pow r1.w, r0.x, c1.x + temp1.w = pow(temp0.x, float1(50)); + // mul r0.x, r0.y, r1.w + temp0.x = temp0.y * temp1.w; + // texld r3, v5.zwzw, s1 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c3.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r0.x, r2.x, r0.x + temp0.x = temp2.x * temp0.x; + // mad r0.xyz, r0.z, r1, r0.x + temp0.xyz = temp0.zzz * temp1.xyz + temp0.xxx; + // mad r0.xyz, r3, r0, r2.yzww + temp0.xyz = temp3.xyz * temp0.xyz + temp2.yzw; + // mov r1.yz, c1 + temp1.yz = float2(1, -1); + // mul r1.xy, r1.yzzw, c11.x + temp1.xy = temp1.yz * expr11.xx; + // mul r1.xy, r1, v4 + temp1.xy = temp1.xy * i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c3.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES True +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float2 temp7; + // def c0, -4, -5, -6, -7 + // def c1, 2.2, 2, -1, -0.75 + // def c2, 50, 0.25, 1, -1 + // def c3, 0, 1, 2, 3 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_texcoord7 v7.xyz + // dcl_color v8 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul oC0.w, r0.w, v8.w + out_color.w = temp0.w * i.color.w; + // texld r0, v0, s4 + temp0 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r0.xyz, r0, c1.y, c1.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, -c1.wwzw + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1); + // dp3 r2.x, r0, v1 + temp2.x = dot(temp0.xyz, i.texcoord1.xyz); + // dp3 r2.y, r0, v2 + temp2.y = dot(temp0.xyz, i.texcoord2.xyz); + // dp3 r2.z, r0, v3 + temp2.z = dot(temp0.xyz, i.texcoord3.xyz); + // nrm r0.xyz, r2 + temp0.xyz = normalize(temp2.xyz).xyz; + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mov r2.yzw, v8.xxyz + temp2.yzw = i.color.xyz; + // mov r0.w, c3.x + temp0.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r3, r0.w, -c3 + temp3 = temp0.w + float4(-0, -1, -2, -3); + // add r4, r0.w, c0 + temp4 = temp0.w + float4(-4, -5, -6, -7); + // mov r5.x, c3.x + temp5.x = float1(0); + // cmp r5.yzw, -r3_abs.x, c89.xxyz, r5.x + temp5.yzw = (-abs(temp3).xxx >= 0) ? PointLight[0].Color.xyz : temp5.xxx; + // cmp r6.xyz, -r3_abs.x, c90, r5.x + temp6.xyz = (-abs(temp3).xxx >= 0) ? PointLight[0].Position.xyz : temp5.xxx; + // cmp r7.xy, -r3_abs.x, c91, r5.x + temp7.xy = (-abs(temp3).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp5.xx; + // cmp r5.xyz, -r3_abs.y, c92, r5.yzww + temp5.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Color.xyz : temp5.yzw; + // cmp r6.xyz, -r3_abs.y, c93, r6 + temp6.xyz = (-abs(temp3).yyy >= 0) ? PointLight[1].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.y, c94, r7 + temp3.xy = (-abs(temp3).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp7.xy; + // cmp r5.xyz, -r3_abs.z, c95, r5 + temp5.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.z, c96, r6 + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[2].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.z, c97, r3 + temp3.xy = (-abs(temp3).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r3_abs.w, c98, r5 + temp5.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r3_abs.w, c99, r6 + temp6.xyz = (-abs(temp3).www >= 0) ? PointLight[3].Position.xyz : temp6.xyz; + // cmp r3.xy, -r3_abs.w, c100, r3 + temp3.xy = (-abs(temp3).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.x, c101, r5 + temp5.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.x, c102, r6 + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[4].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.x, c103, r3 + temp3.xy = (-abs(temp4).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.y, c104, r5 + temp5.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.y, c105, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[5].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.y, c106, r3 + temp3.xy = (-abs(temp4).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.xy; + // cmp r5.xyz, -r4_abs.z, c107, r5 + temp5.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Color.xyz : temp5.xyz; + // cmp r6.xyz, -r4_abs.z, c108, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[6].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.z, c109, r3 + temp3.xy = (-abs(temp4).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp3.xy; + // cmp r4.xyz, -r4_abs.w, c110, r5 + temp4.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Color.xyz : temp5.xyz; + // cmp r5.xyz, -r4_abs.w, c111, r6 + temp5.xyz = (-abs(temp4).www >= 0) ? PointLight[7].Position.xyz : temp6.xyz; + // cmp r3.xy, -r4_abs.w, c112, r3 + temp3.xy = (-abs(temp4).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp3.xy; + // add r5.xyz, r5, -v4 + temp5.xyz = temp5.xyz + -i.texcoord4.xyz; + // dp3 r1.w, r5, r5 + temp1.w = dot(temp5.xyz, temp5.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r3.z, r1.w + temp3.z = 1.0f / temp1.w; + // mul r5.xyz, r5, r1.w + temp5.xyz = temp5.xyz * temp1.www; + // add r1.w, -r3.x, r3.z + temp1.w = -temp3.x + temp3.z; + // add r3.x, -r3.x, r3.y + temp3.x = -temp3.x + temp3.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad_sat r1.w, r1.w, -r3.x, -c1.z + temp1.w = saturate(temp1.w * -temp3.x + float1(1)); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mul r3.xyz, r4, r1.w + temp3.xyz = temp4.xyz * temp1.www; + // dp3 r1.w, r0, r5 + temp1.w = dot(temp0.xyz, temp5.xyz); + // max r3.w, r1.w, c3.x + temp3.w = max(temp1.w, float1(0)); + // mad r2.yzw, r3.xxyz, r3.w, r2 + temp2.yzw = temp3.xyz * temp3.www + temp2.yzw; + // add r0.w, r0.w, -c1.z + temp0.w = temp0.w + float1(1); + // endrep + } + // mul r2.yzw, r1.xxyz, r2 + temp2.yzw = temp1.xyz * temp2.yzw; + // add r2.yzw, r2, r2 + temp2.yzw = temp2.yzw + temp2.yzw; + // dp3 r0.w, r0, c6 + temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.x, r0, v7 + temp0.x = dot(temp0.xyz, i.texcoord7.xyz); + // cmp r0.y, -r0.w, c3.x, c3.y + temp0.y = (-temp0.w >= 0) ? float1(0) : float1(1); + // mul r0.z, r0.w, r0.y + temp0.z = temp0.w * temp0.y; + // cmp r1.w, -r0.x, c3.x, c3.y + temp1.w = (-temp0.x >= 0) ? float1(0) : float1(1); + // mul r0.y, r0.y, r1.w + temp0.y = temp0.y * temp1.w; + // pow r1.w, r0.x, c2.x + temp1.w = pow(temp0.x, float1(50)); + // mul r0.w, r0.y, r1.w + temp0.w = temp0.y * temp1.w; + // texld r3, v5, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r0.xy, c11.zxzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r4, r0, s0 + temp4 = tex2D(ShadowMapSampler, temp0.xy); + // add r0.xy, c11.yzzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r5, r0, s0 + temp5 = tex2D(ShadowMapSampler, temp0.xy); + // add r0.xy, c11.wzzw, v5 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r6, r0, s0 + temp6 = tex2D(ShadowMapSampler, temp0.xy); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v5.z + temp3 = temp3 + -i.texcoord5.z; + // cmp r3, r3, c3.y, c3.x + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, -c1.z, r3 + temp0.x = dot(float4(1, 1, 1, 1), temp3); + // mul r0.x, r0.x, c2.y + temp0.x = temp0.x * float1(0.25); + // mul r0.xy, r0.zwzw, r0.x + temp0.xy = temp0.zw * temp0.xx; + // texld r3, v6.zwzw, s2 + temp3 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c1.x + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r0.y, r2.x, r0.y + temp0.y = temp2.x * temp0.y; + // mad r0.xyz, r0.x, r1, r0.y + temp0.xyz = temp0.xxx * temp1.xyz + temp0.yyy; + // mad r0.xyz, r3, r0, r2.yzww + temp0.xyz = temp3.xyz * temp0.xyz + temp2.yzw; + // mov r1.zw, c2 + temp1.zw = float2(1, -1); + // mul r1.xy, r1.zwzw, c12.x + temp1.xy = temp1.zw * expr12.xx; + // mul r1.xy, r1, v4 + temp1.xy = temp1.xy * i.texcoord4.xy; + // texld r1, r1, s1 + temp1 = tex2D(MacroSamplerSampler, temp1.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mul r0.xyz, r0, r2 + temp0.xyz = temp0.xyz * temp2.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // + + return out_color; +} + +PixelShader PS_H_Array[2] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 63 + compile ps_3_0 PS_H_Array_Shader_1(), // 64 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2, -1, 0.75, 1 + // def c1, 2.2, 0, 0, 0 + // dcl_texcoord v0 + // dcl_texcoord1 v1 + // dcl_color v2 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v0, s3 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, c0.zzww + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(0.75, 0.75, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, r1, c6 + temp0.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r1.x, r0.x, c1.y + temp1.x = max(temp0.x, float1(0)); + // mul_pp r0.xyz, r1.x, c5 + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * DirectionalLight[0].Color.xyz; + // texld r1, v1.zwzw, s1 + temp1 = tex2D(CloudTextureSampler, i.texcoord1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp_pp r2.x, r1.x + temp2.x = /* not implemented _pp modifier */ exp2(temp1.x); + // exp_pp r2.y, r1.y + temp2.y = /* not implemented _pp modifier */ exp2(temp1.y); + // exp_pp r2.z, r1.z + temp2.z = /* not implemented _pp modifier */ exp2(temp1.z); + // mad r0.xyz, r0, r2, v2 + temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz; + // texld r1, v0, s2 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mul_pp oC0.w, r1.w, v2.w + out_color.w = /* not implemented _pp modifier */ temp1.w * i.color.w; + // texld r1, v0.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(MacroSamplerSampler, i.texcoord.zw); + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v1, s4 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul_pp oC0.xyz, r0, r1.x + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 color : COLOR; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, -1, 0.75, 1 + // def c1, 2.2, 0, 1, 0.25 + // dcl_texcoord v0 + // dcl_texcoord1 v1 + // dcl_texcoord2 v2.xyz + // dcl_color v3 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v0, s4 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xyz, r0, c0.zzww + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(0.75, 0.75, 1); + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3 r0.x, r1, c6 + temp0.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r1.x, r0.x, c1.y + temp1.x = max(temp0.x, float1(0)); + // mul_pp r0.xyz, r1.x, c5 + temp0.xyz = /* not implemented _pp modifier */ temp1.xxx * DirectionalLight[0].Color.xyz; + // texld r1, v1.zwzw, s2 + temp1 = tex2D(CloudTextureSampler, i.texcoord1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.x + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp_pp r2.x, r1.x + temp2.x = /* not implemented _pp modifier */ exp2(temp1.x); + // exp_pp r2.y, r1.y + temp2.y = /* not implemented _pp modifier */ exp2(temp1.y); + // exp_pp r2.z, r1.z + temp2.z = /* not implemented _pp modifier */ exp2(temp1.z); + // mul_pp r0.xyz, r0, r2 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp2.xyz; + // add r1.xy, c11.zxzw, v2 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord2.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r1.y, r1.x + temp1.y = temp1.x; + // add r2.xy, c11.yzzw, v2 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord2.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.z, r2.x + temp1.z = temp2.x; + // add r2.xy, c11.wzzw, v2 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord2.xy; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r1.w, r2.x + temp1.w = temp2.x; + // texld r2, v2, s0 + temp2 = tex2D(ShadowMapSampler, i.texcoord2.xy); + // mov r1.x, r2.x + temp1.x = temp2.x; + // add r1, r1, -v2.z + temp1 = temp1 + -i.texcoord2.z; + // cmp r1, r1, c1.z, c1.y + temp1 = (temp1 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.w, c0.w, r1 + temp0.w = dot(float4(1, 1, 1, 1), temp1); + // mul r0.w, r0.w, c1.w + temp0.w = temp0.w * float1(0.25); + // mad r0.xyz, r0, r0.w, v3 + temp0.xyz = temp0.xyz * temp0.www + i.color.xyz; + // texld r1, v0, s3 + temp1 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mul_pp oC0.w, r1.w, v3.w + out_color.w = /* not implemented _pp modifier */ temp1.w * i.color.w; + // texld r1, v0.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(MacroSamplerSampler, i.texcoord.zw); + // mul_pp r0.xyz, r0, r1 + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // texld r1, v1, s5 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul_pp oC0.xyz, r0, r1.x + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xxx; + // + + return out_color; +} + +PixelShader PS_M_Array[2] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 67 + compile ps_3_0 PS_M_Array_Shader_1(), // 68 +}; +// _CreateShadowMap_PixelShader5 Pixel_2_0 Has PRES False +struct _CreateShadowMap_PixelShader5_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 _CreateShadowMap_PixelShader5(_CreateShadowMap_PixelShader5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _CreateShadowMap_VertexShader6 Vertex_2_0 Has PRES False +struct _CreateShadowMap_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct _CreateShadowMap_VertexShader6_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +_CreateShadowMap_VertexShader6_Output _CreateShadowMap_VertexShader6(_CreateShadowMap_VertexShader6_Input i) +{ + _CreateShadowMap_VertexShader6_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Default_L_PixelShader7 Pixel_2_0 Has PRES False +struct Default_L_PixelShader7_Input +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Default_L_PixelShader7(Default_L_PixelShader7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t0 + // dcl t1 + // dcl_2d s0 + // dcl_2d s1 + // mov r0.x, t0.z + temp0.x = i.texcoord.z; + // mov r0.y, t0.w + temp0.y = i.texcoord.w; + // texld r0, r0, s1 + temp0 = tex2D(ShroudTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1, r1, t1 + temp1 = temp1 * i.texcoord1; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_L_VertexShader8 Vertex_2_0 Has PRES False +struct Default_L_VertexShader8_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Default_L_VertexShader8_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +Default_L_VertexShader8_Output Default_L_VertexShader8(Default_L_VertexShader8_Input i) +{ + Default_L_VertexShader8_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oT1, r1, v3 + o.texcoord1 = temp1 * i.color; + // mul oT0.zw, r0.xyxy, c11.xyxy + o.texcoord.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // + + return o; +} + +// Default_M_Expression9 Expression_2_0 Has PRES False +float Default_M_Expression9() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_VertexShader10 Vertex_3_0 Has PRES True +struct Default_M_VertexShader10_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Default_M_VertexShader10_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float4 color : COLOR; +}; + +Default_M_VertexShader10_Output Default_M_VertexShader10(Default_M_VertexShader10_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + Default_M_VertexShader10_Output o; + float4 temp0, temp1; + // def c0, 1, 0, -1, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3 + // dcl_color o4 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.x, r0, c8 + temp0.x = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.y, r0.w, c0.y + temp0.y = max(temp0.w, float1(0)); + // mul r0.yzw, r0.y, c9.xxyz + temp0.yzw = temp0.yyy * DirectionalLight[2].Color.xyz; + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c7, r0.x, r0.yzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.xxx + temp0.yzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o4, r0, v3 + o.color = temp0 * i.color; + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o2.xy, r0, c11 + o.texcoord1.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o2.zw, r0.xyxy, c118.xyxy + o.texcoord1.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xz, c0 + temp0.xz = float2(1, -1); + // mul r0.xy, r0.xzzw, c12.x + temp0.xy = temp0.xz * expr12.xx; + // mul o1.zw, r1.xyxy, r0.xyxy + o.texcoord.zw = temp1.xy * temp0.xy; + // mov o1.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o3.w, r0.x + o.texcoord2.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o3.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord2.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// Default_Expression11 Expression_2_0 Has PRES False +float Default_Expression11() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_VertexShader12 Vertex_3_0 Has PRES False +struct Default_VertexShader12_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Default_VertexShader12_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float3 texcoord7 : TEXCOORD7; + float4 color : COLOR; +}; + +Default_VertexShader12_Output Default_VertexShader12(Default_VertexShader12_Input i) +{ + Default_VertexShader12_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_texcoord7 o8.xyz + // dcl_color o9 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c9 + temp1.xyz = temp0.www * DirectionalLight[2].Color.xyz; + // dp3 r0.w, r0, c8 + temp0.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mad r0.xyz, c7, r0.x, r1 + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.xxx + temp1.xyz; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o9, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r0.xyz, -r1, c123 + temp0.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r0.xyz, r0, r0.w, c6 + temp0.xyz = temp0.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul o8.xyz, r0, r0.w + o.texcoord7 = temp0 * temp0.w; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c11.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c11 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1.xy, v4 + o.texcoord = i.texcoord; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +technique Default +{ + pass p0 + { + VertexShader = compile vs_3_0 Default_VertexShader12(); // 65 + PixelShader = PS_H_Array[Default_Expression11()]; // 66 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = compile vs_3_0 Default_M_VertexShader10(); // 69 + PixelShader = PS_M_Array[Default_M_Expression9()]; // 70 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = compile vs_2_0 Default_L_VertexShader8(); // 71 + PixelShader = compile ps_2_0 Default_L_PixelShader7(); // 72 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader6(); // 73 + PixelShader = compile ps_2_0 _CreateShadowMap_PixelShader5(); // 74 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/objectstesla.fx b/objectstesla.fx new file mode 100644 index 0000000..563bac6 --- /dev/null +++ b/objectstesla.fx @@ -0,0 +1,4267 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +bool HasRecolorColors ; +float3 RecolorColor : register(ps_2_0, c0) : register(ps_3_0, c0) ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(ps_2_0, c2) : register(ps_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) : register(ps_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 8 +sampler2D ShadowMapSampler = +sampler_state +{ + Texture = ; // 11 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 19 +sampler2D MacroSamplerSampler = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +texture CloudTexture ; // 31 +sampler2D CloudTextureSampler = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 40 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 44 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture FractalNormalMap ; // 49 +sampler2D FractalNormalMapSampler = +sampler_state +{ + Texture = ; // 52 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture TeslaTexture ; // 56 +sampler2D TeslaTextureSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 59 + MipFilter = 2; + MinFilter = 2; + MagFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture DiffuseTexture ; // 63 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 65 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture NormalMap ; // 68 +sampler2D NormalMapSampler : register(ps_3_0, s4) = +sampler_state +{ + Texture = ; // 70 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture SpecMap ; // 73 +sampler2D SpecMapSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 75 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float BumpScale = { 1 }; +float3 AmbientColor : register(vs_2_0, c11) : register(vs_3_0, c11) = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor : register(vs_2_0, c12) : register(vs_3_0, c12) = { 1, 1, 1, 1 }; +float3 SpecularColor = { 0.8, 0.8, 0.8 }; +float SpecularExponent = { 50 }; +float EnvMult = { 1 }; +bool AlphaTestEnable ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c13) : register(vs_3_0, c13) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 93 +sampler2D ShroudTextureSampler : register(ps_3_0, s6) = +sampler_state +{ + Texture = ; // 96 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_H_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_0_Output VS_H_Array_Shader_0(VS_H_Array_Shader_0_Input i) +{ + VS_H_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o6.xyz, r0.xzww, r0.y, c0.yyww + o.texcoord5.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_H_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_H_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Array_Shader_1_Output VS_H_Array_Shader_1(VS_H_Array_Shader_1_Input i) +{ + VS_H_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + // def c0, 1, -1, 0, 0.5 + // def c2, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * DiffuseColor.xyz; + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mad r3.xyz, r4, c11, r3 + temp3.xyz = temp4.xyz * AmbientColor.xyz + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c13.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r1, c13 + o.texcoord6.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o7.zw, r1.xyxy, c118.xyxy + o.texcoord6.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r3, v3.yzxz, c128[a0.x].zxyz + temp3 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.x, -r1.x + o.texcoord1.x = -temp1.x; + // mul r3, v2.zxyy, c128[a0.x].yzxy + temp3 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v2.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp3; + // mul r4, v2.yzxz, c128[a0.x].zxyz + temp4 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // mov o2.y, -r3.x + o.texcoord1.y = -temp3.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r1.y + o.texcoord2.x = -temp1.y; + // mov o4.x, -r1.z + o.texcoord3.x = -temp1.z; + // mov o3.y, -r3.y + o.texcoord2.y = -temp3.y; + // mov o4.y, -r3.z + o.texcoord3.y = -temp3.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // mov o5.xyz, r0 + o.texcoord4 = temp0; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o6.w, r0.x + o.texcoord5.w = temp0.x; + // mad o6.xyz, r1, r0.y, c2.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_H_Array[2] = { + compile vs_3_0 VS_H_Array_Shader_0(), // 100 + compile vs_3_0 VS_H_Array_Shader_1(), // 101 +}; +// VS_H_Tesla_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_H_Tesla_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Tesla_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Tesla_Array_Shader_0_Output VS_H_Tesla_Array_Shader_0(VS_H_Tesla_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + // Expression_2_1 + // mul c14.x, c0.x, (0.15) + expr14.x = Time.x * (0.15); + } + + VS_H_Tesla_Array_Shader_0_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, 0.5, 0.003 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // mov o2.z, r0.x + o.texcoord1.z = temp0.x; + // mov o3.z, r0.y + o.texcoord2.z = temp0.y; + // mov o4.z, r0.z + o.texcoord3.z = temp0.z; + // max r0.x, r0.w, c0.y + temp0.x = max(temp0.w, float1(0)); + // mul r0.xyz, r0.x, c9 + temp0.xyz = temp0.xxx * DirectionalLight[2].Color.xyz; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mul r0.xyz, r0, v5 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mad r1, v5.w, c0.yyyx, c0.zzzy + temp1 = i.color.w * float4(0, 0, 0, 1) + float4(0.5, 0.5, 0.5, 0); + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0.xy, c0.w, v4 + temp0.xy = float2(0.003, 0.003) * i.texcoord.xy; + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r2.x, r1, c124 + temp2.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r2.y, r1, c125 + temp2.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 r2.z, r1, c126 + temp2.z = dot(temp1, (World._m02_m12_m22_m32)); + // mad o6.xy, r2, c0.w, r0 + o.texcoord5.xy = temp2.xy * float2(0.003, 0.003) + temp0.xy; + // mov r0.z, c0.z + temp0.z = float1(0.5); + // mad o6.zw, v4.xyyx, r0.z, c14.x + o.texcoord5.zw = i.texcoord.yx * temp0.zz + expr14.xx; + // mov r2.w, c0.x + temp2.w = float1(1); + // dp4 o0.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r2, c13.zwzw + temp0.xy = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r2.z, c117.zwzw + temp0.xy = temp2.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mov o5.xyz, r2 + o.texcoord4 = temp2; + // mad r0.xy, r2, c117, -r0 + temp0.xy = temp2.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // dp3 r0.x, v2, c124 + temp0.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // mov o2.y, -r0.x + o.texcoord1.y = -temp0.x; + // dp3 r0.x, v3, c125 + temp0.x = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.x, -r0.x + o.texcoord2.x = -temp0.x; + // dp3 r0.x, v2, c125 + temp0.x = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // mov o3.y, -r0.x + o.texcoord2.y = -temp0.x; + // dp3 r0.x, v3, c126 + temp0.x = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.x, -r0.x + o.texcoord3.x = -temp0.x; + // dp3 r0.x, v2, c126 + temp0.x = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // mov o4.y, -r0.x + o.texcoord3.y = -temp0.x; + // + + return o; +} + +// VS_H_Tesla_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_H_Tesla_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_H_Tesla_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +VS_H_Tesla_Array_Shader_1_Output VS_H_Tesla_Array_Shader_1(VS_H_Tesla_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + // Expression_2_1 + // mul c14.x, c0.x, (0.15) + expr14.x = Time.x * (0.15); + } + + VS_H_Tesla_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3; + float addr0; + float3 temp4; + // def c0, 1, -1, 0, 0.5 + // def c2, 0.003, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2.xyz + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4.xyz + // dcl_texcoord4 o5.xyz + // dcl_texcoord5 o6 + // dcl_texcoord6 o7 + // dcl_color o8 + // slt r0.x, v4.x, -v4.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v4.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v4.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.w, v6.w, c129[a0.x].w + temp0.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r0.xyz, c0.w + temp0.xyz = float3(0.5, 0.5, 0.5); + // add r2.x, v4.x, v4.x + temp2.x = i.blendindices.x + i.blendindices.x; + // frc r2.y, r2.x + temp2.y = frac(temp2.x); + // add r2.z, r2.x, -r2.y + temp2.z = temp2.x + -temp2.y; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // slt r2.x, r2.x, -r2.x + temp2.x = (temp2.x < -temp2.x) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2, v1.zxyy, c128[a0.x].yzxy + temp2 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v1.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp2; + // mul r3, v1.yzxz, c128[a0.x].zxyz + temp3 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 r2.w, r2, c10 + temp2.w = dot(temp2.xyz, DirectionalLight[2].Direction.xyz); + // max r2.w, r2.w, c0.z + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r2.w, c9 + temp3.xyz = temp2.www * DirectionalLight[2].Color.xyz; + // mul r3.xyz, r3, c12 + temp3.xyz = temp3.xyz * DiffuseColor.xyz; + // mov r4.xyz, c4 + temp4.xyz = AmbientLightColor.xyz; + // mad r3.xyz, r4, c11, r3 + temp3.xyz = temp4.xyz * AmbientColor.xyz + temp3.xyz; + // mul r1.xyz, r3, v6 + temp1.xyz = temp3.xyz * i.color.xyz; + // mul o8, r0, r1 + o.color = temp0 * temp1; + // mul r0.xy, c2.x, v5 + temp0.xy = float2(0.003, 0.003) * i.texcoord.xy; + // mul r1, v0.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v0.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r3, v0.yzxz, c128[a0.x].zxyz + temp3 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad o6.xy, r1, c2.x, r0 + o.texcoord5.xy = temp1.xy * float2(0.003, 0.003) + temp0.xy; + // mov r0.w, c0.w + temp0.w = float1(0.5); + // mad o6.zw, v5.xyyx, r0.w, c14.x + o.texcoord5.zw = i.texcoord.yx * temp0.ww + expr14.xx; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c13 + o.texcoord6.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // mov o5.xyz, r1 + o.texcoord4 = temp1; + // add o7.zw, r0.xyxy, c118.xyxy + o.texcoord6.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mul r0, v3.zxyy, c128[a0.x].yzxy + temp0 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.x].zxyz + temp1 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // mov o2.x, -r0.x + o.texcoord1.x = -temp0.x; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp1; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r3 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r1.w, c128[a0.x] + temp3.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r1, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r1.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp3.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r3 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp3.xyz; + // mov o2.y, -r1.x + o.texcoord1.y = -temp1.x; + // mov o2.z, r2.x + o.texcoord1.z = temp2.x; + // mov o3.x, -r0.y + o.texcoord2.x = -temp0.y; + // mov o4.x, -r0.z + o.texcoord3.x = -temp0.z; + // mov o3.y, -r1.y + o.texcoord2.y = -temp1.y; + // mov o4.y, -r1.z + o.texcoord3.y = -temp1.z; + // mov o3.z, r2.y + o.texcoord2.z = temp2.y; + // mov o4.z, r2.z + o.texcoord3.z = temp2.z; + // + + return o; +} + +VertexShader VS_H_Tesla_Array[2] = { + compile vs_3_0 VS_H_Tesla_Array_Shader_0(), // 102 + compile vs_3_0 VS_H_Tesla_Array_Shader_1(), // 103 +}; +// PS_H_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_0(PS_H_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, 0 + // def c1, -0, -1, -2, -3 + // def c3, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c12 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c11.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v0, s4 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r3, -r1.w, r1 + temp1.xyz = temp3.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mad r1.xyz, r2, v6, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.x + temp4.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c3 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_1(PS_H_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float2 temp8; + // def c0, 2.2, 2, -1, -0 + // def c1, -0, -1, -2, -3 + // def c3, 0.25, 0, 0, 0 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul r0.xyz, r2, c13 + temp0.xyz = temp2.xyz * DiffuseColor.xyz; + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c0.y, c0.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c12.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, -c0.z, -c0.w + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c0.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c3.x + temp1.w = temp1.w * float1(0.25); + // texld r4, v0, s5 + temp4 = tex2D(SpecMapSampler, i.texcoord.xy); + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // add r2.w, r2.w, r2.w + temp2.w = temp2.w + temp2.w; + // mad r1.xyz, r3, -r2.w, r1 + temp1.xyz = temp3.xyz * -temp2.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r5, r1, s2 + temp5 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r5, c5 + temp1.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r4.x, r1 + temp1.xyz = temp4.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2, v7, r1 + temp1.xyz = temp2.xyz * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c0.x + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c0.w + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, -c0.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, -c0.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, -c0.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c1 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c0.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c0.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, -c0.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c0.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_2(PS_H_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6, temp7; + float2 temp8; + // def c1, 2, 2.2, -1, 0 + // def c3, -0, -1, -2, -3 + // def c4, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord6 v5 + // dcl_color v6 + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s2 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s4 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c1.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // mul r0.xyz, r2.yzww, c12 + temp0.xyz = temp2.yzw * DiffuseColor.xyz; + // texld r3, v0, s3 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c1.x, c1.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c11.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // dp3 r1.w, r1, r3 + temp1.w = dot(temp1.xyz, temp3.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r1.xyz, r3, -r1.w, r1 + temp1.xyz = temp3.xyz * -temp1.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s1 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mad r1.xyz, r2.yzww, v6, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r2, v5.zwzw, s0 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c1.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.x, r1.w, c1.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.yzw, r4.xxyz, c5.xxyz + temp2.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.x + temp4.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, r2.yzww, r4, r1 + temp1.xyz = temp2.yzw * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, c1.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, c1.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, c1.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c3 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c4 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c1.w + temp2.w = float1(0); + // cmp r6.xyz, -r4_abs.x, c89, r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : temp2.www; + // cmp r8.xy, -r4_abs.x, c91, r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c1.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c1.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c1.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v6.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v5, s5 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_H_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; + float4 color : COLOR; +}; + +float4 PS_H_Array_Shader_3(PS_H_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + float2 temp8; + // def c1, 2, 2.2, -1, -0 + // def c3, 0.25, 0, 0, 0 + // def c4, -0, -1, -2, -3 + // def c9, -4, -5, -6, -7 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_texcoord6 v6 + // dcl_color v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // add r0.xyz, c123, -v4 + temp0.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // texld r0, v0, s3 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, v0, s5 + temp2 = tex2D(SpecMapSampler, i.texcoord.xy); + // mul r3.xyz, r0, c0 + temp3.xyz = temp0.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r0 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp0.xyz; + // mad r0.xyz, r2.z, r3, r0 + temp0.xyz = temp2.zzz * temp3.xyz + temp0.xyz; + // log r2.y, r0.x + temp2.y = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.w, r0.z + temp2.w = log2(temp0.z); + // mul r0.xyz, r2.yzww, c1.y + temp0.xyz = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r2.y, r0.x + temp2.y = exp2(temp0.x); + // exp r2.z, r0.y + temp2.z = exp2(temp0.y); + // exp r2.w, r0.z + temp2.w = exp2(temp0.z); + // mul r0.xyz, r2.yzww, c13 + temp0.xyz = temp2.yzw * DiffuseColor.xyz; + // texld r3, v0, s4 + temp3 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r3.xyz, r3, c1.x, c1.z + temp3.xyz = temp3.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r3.xy, r3, c12.x + temp3.xy = temp3.xy * BumpScale.xx; + // dp3 r4.x, r3, v1 + temp4.x = dot(temp3.xyz, i.texcoord1.xyz); + // dp3 r4.y, r3, v2 + temp4.y = dot(temp3.xyz, i.texcoord2.xyz); + // dp3 r4.z, r3, v3 + temp4.z = dot(temp3.xyz, i.texcoord3.xyz); + // nrm r3.xyz, r4 + temp3.xyz = normalize(temp4.xyz).xyz; + // texld r4, v5, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // add r5.xy, c11.zxzw, v5 + temp5.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord5.xy; + // texld r5, r5, s0 + temp5 = tex2D(ShadowMapSampler, temp5.xy); + // add r5.yz, c11, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord5.xy; + // texld r6, r5.yzzw, s0 + temp6 = tex2D(ShadowMapSampler, temp5.yz); + // add r5.yz, c11.xwzw, v5.xxyw + temp5.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord5.xy; + // texld r7, r5.yzzw, s0 + temp7 = tex2D(ShadowMapSampler, temp5.yz); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v5.z + temp4 = temp4 + -i.texcoord5.z; + // cmp r4, r4, -c1.z, -c1.w + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r1.w, -c1.z, r4 + temp1.w = dot(float4(1, 1, 1, 1), temp4); + // mul r1.w, r1.w, c3.x + temp1.w = temp1.w * float1(0.25); + // dp3 r3.w, r1, r3 + temp3.w = dot(temp1.xyz, temp3.xyz); + // add r3.w, r3.w, r3.w + temp3.w = temp3.w + temp3.w; + // mad r1.xyz, r3, -r3.w, r1 + temp1.xyz = temp3.xyz * -temp3.www + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r4, r1, s2 + temp4 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mul r1.xyz, r4, c5 + temp1.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r2.x, r1 + temp1.xyz = temp2.xxx * temp1.xyz; + // mul r1.xyz, r1.w, r1 + temp1.xyz = temp1.www * temp1.xyz; + // mad r1.xyz, r2.yzww, v7, r1 + temp1.xyz = temp2.yzw * i.color.xyz + temp1.xyz; + // texld r2, v6.zwzw, s1 + temp2 = tex2D(CloudTextureSampler, i.texcoord6.zw); + // log r4.x, r2.x + temp4.x = log2(temp2.x); + // log r4.y, r2.y + temp4.y = log2(temp2.y); + // log r4.z, r2.z + temp4.z = log2(temp2.z); + // mul r2.xyz, r4, c1.y + temp2.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r2.x + temp4.x = exp2(temp2.x); + // exp r4.y, r2.y + temp4.y = exp2(temp2.y); + // exp r4.z, r2.z + temp4.z = exp2(temp2.z); + // mul r2.xyz, r1.w, r4 + temp2.xyz = temp1.www * temp4.xyz; + // dp3 r1.w, r3, c6 + temp1.w = dot(temp3.xyz, DirectionalLight[0].Direction.xyz); + // max r2.w, r1.w, -c1.w + temp2.w = max(temp1.w, float1(0)); + // mul r2.xyz, r2, c5 + temp2.xyz = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r0, r2.w + temp4.xyz = temp0.xyz * temp2.www; + // mad r1.xyz, r2, r4, r1 + temp1.xyz = temp2.xyz * temp4.xyz + temp1.xyz; + // dp3 r1.w, r3, c8 + temp1.w = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r2.x, r1.w, -c1.w + temp2.x = max(temp1.w, float1(0)); + // mul r2.xyz, r0, r2.x + temp2.xyz = temp0.xyz * temp2.xxx; + // mad r1.xyz, c7, r2, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp2.xyz + temp1.xyz; + // mov r2.xyz, -c1.w + temp2.xyz = float3(0, 0, 0); + // mov r1.w, -c1.w + temp1.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r4, r1.w, c4 + temp4 = temp1.w + float4(-0, -1, -2, -3); + // add r5, r1.w, c9 + temp5 = temp1.w + float4(-4, -5, -6, -7); + // mov r2.w, c1.w + temp2.w = float1(-0); + // cmp r6.xyz, -r4_abs.x, c89, -r2.w + temp6.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Color.xyz : -temp2.www; + // cmp r7.xyz, -r4_abs.x, c90, -r2.w + temp7.xyz = (-abs(temp4).xxx >= 0) ? PointLight[0].Position.xyz : -temp2.www; + // cmp r8.xy, -r4_abs.x, c91, -r2.w + temp8.xy = (-abs(temp4).xx >= 0) ? PointLight[0].Range_Inner_Outer.xy : -temp2.ww; + // cmp r6.xyz, -r4_abs.y, c92, r6 + temp6.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.y, c93, r7 + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.y, c94, r8 + temp4.xy = (-abs(temp4).yy >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp8.xy; + // cmp r6.xyz, -r4_abs.z, c95, r6 + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.z, c96, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.z, c97, r4 + temp4.xy = (-abs(temp4).zz >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r4_abs.w, c98, r6 + temp6.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r4_abs.w, c99, r7 + temp7.xyz = (-abs(temp4).www >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.xy, -r4_abs.w, c100, r4 + temp4.xy = (-abs(temp4).ww >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.x, c101, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c102, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.x, c103, r4 + temp4.xy = (-abs(temp5).xx >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.y, c104, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c105, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.y, c106, r4 + temp4.xy = (-abs(temp5).yy >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.xy; + // cmp r6.xyz, -r5_abs.z, c107, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c108, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[6].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.z, c109, r4 + temp4.xy = (-abs(temp5).zz >= 0) ? PointLight[6].Range_Inner_Outer.xy : temp4.xy; + // cmp r5.xyz, -r5_abs.w, c110, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c111, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[7].Position.xyz : temp7.xyz; + // cmp r4.xy, -r5_abs.w, c112, r4 + temp4.xy = (-abs(temp5).ww >= 0) ? PointLight[7].Range_Inner_Outer.xy : temp4.xy; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord4.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.x, r3.w + temp2.w = -temp4.x + temp3.w; + // add r3.w, -r4.x, r4.y + temp3.w = -temp4.x + temp4.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, -c1.z + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.xyz, r5, r2.w + temp4.xyz = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, -c1.w + temp3.w = max(temp2.w, float1(0)); + // mad r2.xyz, r4, r3.w, r2 + temp2.xyz = temp4.xyz * temp3.www + temp2.xyz; + // add r1.w, r1.w, -c1.z + temp1.w = temp1.w + float1(1); + // endrep + } + // mad r0.xyz, r2, r0, r1 + temp0.xyz = temp2.xyz * temp0.xyz + temp1.xyz; + // mul oC0.w, r0.w, v7.w + out_color.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // texld r1, v6, s6 + temp1 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_H_Array[4] = { + compile ps_3_0 PS_H_Array_Shader_0(), // 104 + compile ps_3_0 PS_H_Array_Shader_1(), // 105 + compile ps_3_0 PS_H_Array_Shader_2(), // 106 + compile ps_3_0 PS_H_Array_Shader_3(), // 107 +}; +// PS_H_Tesla_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_H_Tesla_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Tesla_Array_Shader_0(PS_H_Tesla_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 0.04 + // def c1, 1.5, 3, 50, 4 + // def c2, 0.07, 0.15, 0.75, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5 + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v5, s0 + temp0 = tex2D(FractalNormalMapSampler, i.texcoord5.xy); + // log r0.x, r0.x + temp0.x = log2(temp0.x); + // log r0.z, r0.y + temp0.z = log2(temp0.y); + // mul r0.xy, r0.xzzw, c0.z + temp0.xy = temp0.xz * float2(2.2, 2.2); + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // exp r0.z, r0.y + temp0.z = exp2(temp0.y); + // mad r0.xy, r0.xzzw, c0.x, c0.y + temp0.xy = temp0.xz * float2(2, 2) + float2(-1, -1); + // mul r0.xy, r0, c0.w + temp0.xy = temp0.xy * float2(0.04, 0.04); + // mad r0.zw, v5, c1.x, r0.xyxy + temp0.zw = i.texcoord5.zw * float2(1.5, 1.5) + temp0.xy; + // mad r0.xy, v5.wzzw, c1.y, r0 + temp0.xy = i.texcoord5.wz * float2(3, 3) + temp0.xy; + // texld r1, r0.zwzw, s1 + temp1 = tex2D(TeslaTextureSampler, temp0.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r0, r0, s1 + temp0 = tex2D(TeslaTextureSampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // texld r1, v0, s2 + temp1 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, -c0.y + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c2 + temp1.xyz = temp0.www * float3(0.07, 0.15, 0.75); + // mad r0.xyz, r0, c1.z, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c1.w + temp1.xyz = min(temp0.xyz, float3(4, 4, 4)); + // texld r0, v6, s3 + temp0 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, -c0.y + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Tesla_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_H_Tesla_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Tesla_Array_Shader_1(PS_H_Tesla_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 0.04 + // def c1, 1.5, 3, 50, 4 + // def c2, 0.07, 0.15, 0.75, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5 + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v5, s0 + temp0 = tex2D(FractalNormalMapSampler, i.texcoord5.xy); + // log r0.x, r0.x + temp0.x = log2(temp0.x); + // log r0.z, r0.y + temp0.z = log2(temp0.y); + // mul r0.xy, r0.xzzw, c0.z + temp0.xy = temp0.xz * float2(2.2, 2.2); + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // exp r0.z, r0.y + temp0.z = exp2(temp0.y); + // mad r0.xy, r0.xzzw, c0.x, c0.y + temp0.xy = temp0.xz * float2(2, 2) + float2(-1, -1); + // mul r0.xy, r0, c0.w + temp0.xy = temp0.xy * float2(0.04, 0.04); + // mad r0.zw, v5, c1.x, r0.xyxy + temp0.zw = i.texcoord5.zw * float2(1.5, 1.5) + temp0.xy; + // mad r0.xy, v5.wzzw, c1.y, r0 + temp0.xy = i.texcoord5.wz * float2(3, 3) + temp0.xy; + // texld r1, r0.zwzw, s1 + temp1 = tex2D(TeslaTextureSampler, temp0.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r0, r0, s1 + temp0 = tex2D(TeslaTextureSampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // texld r1, v0, s2 + temp1 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, -c0.y + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c2 + temp1.xyz = temp0.www * float3(0.07, 0.15, 0.75); + // mad r0.xyz, r0, c1.z, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c1.w + temp1.xyz = min(temp0.xyz, float3(4, 4, 4)); + // texld r0, v6, s3 + temp0 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, -c0.y + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Tesla_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_H_Tesla_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Tesla_Array_Shader_2(PS_H_Tesla_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 0.04 + // def c1, 1.5, 3, 50, 4 + // def c2, 0.07, 0.15, 0.75, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5 + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v5, s0 + temp0 = tex2D(FractalNormalMapSampler, i.texcoord5.xy); + // log r0.x, r0.x + temp0.x = log2(temp0.x); + // log r0.z, r0.y + temp0.z = log2(temp0.y); + // mul r0.xy, r0.xzzw, c0.z + temp0.xy = temp0.xz * float2(2.2, 2.2); + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // exp r0.z, r0.y + temp0.z = exp2(temp0.y); + // mad r0.xy, r0.xzzw, c0.x, c0.y + temp0.xy = temp0.xz * float2(2, 2) + float2(-1, -1); + // mul r0.xy, r0, c0.w + temp0.xy = temp0.xy * float2(0.04, 0.04); + // mad r0.zw, v5, c1.x, r0.xyxy + temp0.zw = i.texcoord5.zw * float2(1.5, 1.5) + temp0.xy; + // mad r0.xy, v5.wzzw, c1.y, r0 + temp0.xy = i.texcoord5.wz * float2(3, 3) + temp0.xy; + // texld r1, r0.zwzw, s1 + temp1 = tex2D(TeslaTextureSampler, temp0.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r0, r0, s1 + temp0 = tex2D(TeslaTextureSampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // texld r1, v0, s2 + temp1 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, -c0.y + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c2 + temp1.xyz = temp0.www * float3(0.07, 0.15, 0.75); + // mad r0.xyz, r0, c1.z, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c1.w + temp1.xyz = min(temp0.xyz, float3(4, 4, 4)); + // texld r0, v6, s3 + temp0 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, -c0.y + out_color.w = float1(1); + // + + return out_color; +} + +// PS_H_Tesla_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_H_Tesla_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 texcoord5 : TEXCOORD5; + float2 texcoord6 : TEXCOORD6; +}; + +float4 PS_H_Tesla_Array_Shader_3(PS_H_Tesla_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 2, -1, 2.2, 0.04 + // def c1, 1.5, 3, 50, 4 + // def c2, 0.07, 0.15, 0.75, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1_centroid v1.xyz + // dcl_texcoord2_centroid v2.xyz + // dcl_texcoord3_centroid v3.xyz + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5 + // dcl_texcoord6 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, v5, s0 + temp0 = tex2D(FractalNormalMapSampler, i.texcoord5.xy); + // log r0.x, r0.x + temp0.x = log2(temp0.x); + // log r0.z, r0.y + temp0.z = log2(temp0.y); + // mul r0.xy, r0.xzzw, c0.z + temp0.xy = temp0.xz * float2(2.2, 2.2); + // exp r0.x, r0.x + temp0.x = exp2(temp0.x); + // exp r0.z, r0.y + temp0.z = exp2(temp0.y); + // mad r0.xy, r0.xzzw, c0.x, c0.y + temp0.xy = temp0.xz * float2(2, 2) + float2(-1, -1); + // mul r0.xy, r0, c0.w + temp0.xy = temp0.xy * float2(0.04, 0.04); + // mad r0.zw, v5, c1.x, r0.xyxy + temp0.zw = i.texcoord5.zw * float2(1.5, 1.5) + temp0.xy; + // mad r0.xy, v5.wzzw, c1.y, r0 + temp0.xy = i.texcoord5.wz * float2(3, 3) + temp0.xy; + // texld r1, r0.zwzw, s1 + temp1 = tex2D(TeslaTextureSampler, temp0.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // texld r0, r0, s1 + temp0 = tex2D(TeslaTextureSampler, temp0.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r2, r1 + temp0.xyz = temp2.xyz * temp1.xyz; + // texld r1, v0, s2 + temp1 = tex2D(NormalMapSampler, i.texcoord.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r1.xy, r1, c11.x + temp1.xy = temp1.xy * BumpScale.xx; + // dp3 r2.x, r1, v1 + temp2.x = dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r2.y, r1, v2 + temp2.y = dot(temp1.xyz, i.texcoord2.xyz); + // dp3 r2.z, r1, v3 + temp2.z = dot(temp1.xyz, i.texcoord3.xyz); + // nrm r1.xyz, r2 + temp1.xyz = normalize(temp2.xyz).xyz; + // add r2.xyz, c123, -v4 + temp2.xyz = EyePosition.xyz + -i.texcoord4.xyz; + // nrm r3.xyz, r2 + temp3.xyz = normalize(temp2.xyz).xyz; + // dp3 r0.w, r3, r1 + temp0.w = dot(temp3.xyz, temp1.xyz); + // add r0.w, -r0.w, -c0.y + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r1.xyz, r0.w, c2 + temp1.xyz = temp0.www * float3(0.07, 0.15, 0.75); + // mad r0.xyz, r0, c1.z, r1 + temp0.xyz = temp0.xyz * float3(50, 50, 50) + temp1.xyz; + // min r1.xyz, r0, c1.w + temp1.xyz = min(temp0.xyz, float3(4, 4, 4)); + // texld r0, v6, s3 + temp0 = tex2D(ShroudTextureSampler, i.texcoord6.xy); + // mul oC0.xyz, r1, r0 + out_color.xyz = temp1.xyz * temp0.xyz; + // mov oC0.w, -c0.y + out_color.w = float1(1); + // + + return out_color; +} + +PixelShader PS_H_Tesla_Array[4] = { + compile ps_3_0 PS_H_Tesla_Array_Shader_0(), // 108 + compile ps_3_0 PS_H_Tesla_Array_Shader_1(), // 109 + compile ps_3_0 PS_H_Tesla_Array_Shader_2(), // 110 + compile ps_3_0 PS_H_Tesla_Array_Shader_3(), // 111 +}; +// VS_M_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float4 texcoord7 : TEXCOORD7; + float4 color : COLOR; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul c11.x, c1.x, (0.15) + expr11.x = Time.x * (0.15); + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4, temp5, temp6; + // def c0, 1, -1, 0, -0.0015 + // def c2, 1, 0, 0.003, 0.5 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_texcoord v4 + // dcl_color v5 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_texcoord6 o7.xyz + // dcl_texcoord7 o8 + // dcl_color o9 + // mad r0, v0.xyzx, c2.xxxy, c2.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c2.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v3, c124 + temp0.x = dot(i.binormal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v3, c125 + temp0.y = dot(i.binormal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v3, c126 + temp0.z = dot(i.binormal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.x, c6, -r0 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp0.xyz); + // dp3 r2.x, v2, c124 + temp2.x = dot(i.tangent.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r2.y, v2, c125 + temp2.y = dot(i.tangent.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r2.z, v2, c126 + temp2.z = dot(i.tangent.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r3.x, v1, c124 + temp3.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r3.y, v1, c125 + temp3.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r3.z, v1, c126 + temp3.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r1, c123 + temp4.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r5.xyz, r4, r0.w, c6 + temp5.xyz = temp4.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // dp3 r6.x, r5, -r0 + temp6.x = dot(temp5.xyz, -temp0.xyz); + // dp3 o7.x, r4, -r0 + o.texcoord6.x = dot(temp4.xyz, -temp0.xyz); + // dp3 r6.y, r5, -r2 + temp6.y = dot(temp5.xyz, -temp2.xyz); + // dp3 o7.y, r4, -r2 + o.texcoord6.y = dot(temp4.xyz, -temp2.xyz); + // dp3 o7.z, r4, r3 + o.texcoord6.z = dot(temp4.xyz, temp3.xyz); + // dp3 r6.z, r5, r3 + temp6.z = dot(temp5.xyz, temp3.xyz); + // dp3 r0.x, r6, r6 + temp0.x = dot(temp6.xyz, temp6.xyz); + // rsq r0.x, r0.x + temp0.x = 1 / sqrt(temp0.x); + // mul o3.xyz, r6, r0.x + o.texcoord2 = temp6 * temp0.x; + // dp3 r0.x, r3, c10 + temp0.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.y, r3, c8 + temp0.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c2.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xzw, r0.x, c9.xyyz + temp0.xzw = temp0.xxx * DirectionalLight[2].Color.xyz; + // max r0.y, r0.y, c2.y + temp0.y = max(temp0.y, float1(0)); + // mad r0.xyz, c7, r0.y, r0.xzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.yyy + temp0.xzw; + // mul r0.xyz, r0, c14 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r2, c13, r0 + temp0.xyz = temp2.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul o9, r0, v5 + o.color = temp0 * i.color; + // mul r0.xy, c2.z, v4 + temp0.xy = float2(0.003, 0.003) * i.texcoord.xy; + // mad o8.xy, r1, c2.z, r0 + o.texcoord7.xy = temp1.xy * float2(0.003, 0.003) + temp0.xy; + // mov r0.w, c2.w + temp0.w = float1(0.5); + // mad o8.zw, v4.xyyx, r0.w, c11.x + o.texcoord7.zw = i.texcoord.yx * temp0.ww + expr11.xx; + // add r0.xy, r1, c15.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r0, c15 + o.texcoord3.xy = temp0.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add o4.zw, r0.xyxy, c118.xyxy + o.texcoord3.zw = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.xy, c0 + temp0.xy = float2(1, -1); + // mul r0.xy, r0, c12.x + temp0.xy = temp0.xy * expr12.xx; + // mul o6.xy, r1, r0 + o.texcoord5 = temp1 * temp0; + // mov o1, v4.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c2.y + o.texcoord1.w = float1(0); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // mad o5.xyz, r0.xzww, r0.y, c0.zzww + o.texcoord4.xyz = temp0.xzw * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 tangent : TANGENT; + float4 binormal : BINORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; + float4 texcoord7 : TEXCOORD7; + float4 color : COLOR; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul c11.x, c1.x, (0.15) + expr11.x = Time.x * (0.15); + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4; + float addr0; + float3 temp5, temp6; + // def c0, 1, -1, 0, 0.003 + // def c2, 0.5, 0, -0.0015, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_tangent v2 + // dcl_binormal v3 + // dcl_blendindices v4 + // dcl_texcoord v5 + // dcl_color v6 + // dcl_position o0 + // dcl_texcoord o1 + // dcl_texcoord1 o2 + // dcl_texcoord2 o3.xyz + // dcl_texcoord3 o4 + // dcl_texcoord4 o5 + // dcl_texcoord5 o6.xy + // dcl_texcoord6 o7.xyz + // dcl_texcoord7 o8 + // dcl_color o9 + // add r0.x, v4.x, v4.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1, v3.zxyy, c128[a0.x].yzxy + temp1 = i.binormal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v3.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.binormal.xyzx + temp1; + // mul r2, v3.yzxz, c128[a0.x].zxyz + temp2 = i.binormal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 o2.x, c6, -r1 + o.texcoord1.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2, v2.zxyy, c128[a0.x].yzxy + temp2 = i.tangent.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r2, c128[a0.x].wwwx, v2.xyzx, r2 + temp2 = WorldBones[0 + addr0.x].wwwx * i.tangent.xyzx + temp2; + // mul r3, v2.yzxz, c128[a0.x].zxyz + temp3 = i.tangent.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.x] + temp3.xyz = temp2.www * WorldBones[0 + addr0.x].xyz; + // mad r3.xyz, c128[a0.x].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.x].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.x].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.x].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.x].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.x].zxy * -temp2.yzx + temp3.xyz; + // dp3 o2.y, c6, -r2 + o.texcoord1.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3, v1.zxyy, c128[a0.x].yzxy + temp3 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r3, c128[a0.x].wwwx, v1.xyzx, r3 + temp3 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp3; + // mul r4, v1.yzxz, c128[a0.x].zxyz + temp4 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r3, r3, c0.xxxy, -r4 + temp3 = temp3 * float4(1, 1, 1, -1) + -temp4; + // mul r4.xyz, r3.w, c128[a0.x] + temp4.xyz = temp3.www * WorldBones[0 + addr0.x].xyz; + // mad r4.xyz, c128[a0.x].w, r3, -r4 + temp4.xyz = WorldBones[0 + addr0.x].www * temp3.xyz + -temp4.xyz; + // mad r4.xyz, c128[a0.x].yzxw, r3.zxyw, r4 + temp4.xyz = WorldBones[0 + addr0.x].yzx * temp3.zxy + temp4.xyz; + // mad r3.xyz, c128[a0.x].zxyw, -r3.yzxw, r4 + temp3.xyz = WorldBones[0 + addr0.x].zxy * -temp3.yzx + temp4.xyz; + // dp3 o2.z, c6, r3 + o.texcoord1.z = dot(DirectionalLight[0].Direction.xyz, temp3.xyz); + // add r4.xyz, -r0, c123 + temp4.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r5.xyz, r4, r1.w, c6 + temp5.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // mul r4.xyz, r4, r1.w + temp4.xyz = temp4.xyz * temp1.www; + // dp3 r6.x, r5, -r1 + temp6.x = dot(temp5.xyz, -temp1.xyz); + // dp3 o7.x, r4, -r1 + o.texcoord6.x = dot(temp4.xyz, -temp1.xyz); + // dp3 r6.y, r5, -r2 + temp6.y = dot(temp5.xyz, -temp2.xyz); + // dp3 o7.y, r4, -r2 + o.texcoord6.y = dot(temp4.xyz, -temp2.xyz); + // dp3 o7.z, r4, r3 + o.texcoord6.z = dot(temp4.xyz, temp3.xyz); + // dp3 r6.z, r5, r3 + temp6.z = dot(temp5.xyz, temp3.xyz); + // dp3 r1.x, r6, r6 + temp1.x = dot(temp6.xyz, temp6.xyz); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // mul o3.xyz, r6, r1.x + o.texcoord2 = temp6 * temp1.x; + // dp3 r1.x, r3, c10 + temp1.x = dot(temp3.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.y, r3, c8 + temp1.y = dot(temp3.xyz, DirectionalLight[1].Direction.xyz); + // max r1.x, r1.x, c0.z + temp1.x = max(temp1.x, float1(0)); + // mul r1.xzw, r1.x, c9.xyyz + temp1.xzw = temp1.xxx * DirectionalLight[2].Color.xyz; + // max r1.y, r1.y, c0.z + temp1.y = max(temp1.y, float1(0)); + // mad r1.xyz, c7, r1.y, r1.xzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.yyy + temp1.xzw; + // mul r1.xyz, r1, c14 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c13, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r2.x, v4.x, -v4.x + temp2.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r2.y, v4.x + temp2.y = frac(i.blendindices.x); + // add r2.z, -r2.y, v4.x + temp2.z = -temp2.y + i.blendindices.x; + // slt r2.y, -r2.y, r2.y + temp2.y = (-temp2.y < temp2.y) ? 1 : 0; + // mad r2.x, r2.x, r2.y, r2.z + temp2.x = temp2.x * temp2.y + temp2.z; + // add r2.x, r2.x, r2.x + temp2.x = temp2.x + temp2.x; + // mova a0.x, r2.x + addr0.x = temp2.x; + // mul r2.w, v6.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v6 + temp2.xyz = i.color.xyz; + // mul o9, r1, r2 + o.color = temp1 * temp2; + // mul r1.xy, c0.w, v5 + temp1.xy = float2(0.003, 0.003) * i.texcoord.xy; + // mad o8.xy, r0, c0.w, r1 + o.texcoord7.xy = temp0.xy * float2(0.003, 0.003) + temp1.xy; + // mov r1.x, c2.x + temp1.x = float1(0.5); + // mad o8.zw, v5.xyyx, r1.x, c11.x + o.texcoord7.zw = i.texcoord.yx * temp1.xx + expr11.xx; + // add r1.xy, r0, c15.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o4.xy, r1, c15 + o.texcoord3.xy = temp1.xy * Shroud.ScaleUV_OffsetUV.xy; + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add o4.zw, r1.xyxy, c118.xyxy + o.texcoord3.zw = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xy, c0 + temp1.xy = float2(1, -1); + // mul r1.xy, r1, c12.x + temp1.xy = temp1.xy * expr12.xx; + // mul o6.xy, r0, r1 + o.texcoord5 = temp0 * temp1; + // mov o1, v5.xyyx + o.texcoord = i.texcoord.xyyx; + // mov o2.w, c0.z + o.texcoord1.w = float1(0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o5.w, r0.x + o.texcoord4.w = temp0.x; + // mad o5.xyz, r1, r0.y, c2.yyzw + o.texcoord4.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_3_0 VS_M_Array_Shader_0(), // 117 + compile vs_3_0 VS_M_Array_Shader_1(), // 118 +}; +// PS_M_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord6 : TEXCOORD6; + float4 texcoord7 : TEXCOORD7; + float3 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2, -1, 0, 1 + // def c1, 0.04, 1.5, 3, 20 + // def c3, 0.07, 0.15, 0.75, 4 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord6 v3.xyz + // dcl_texcoord7 v4 + // dcl_color v5.xyz + // dcl_texcoord1_centroid v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // texld r0, v0, s4 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c0.x, c0.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // cmp r0.y, -r0.x, c0.z, c0.w + temp0.y = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.w, r0.x, c14.x + temp1.w = pow(temp0.x, SpecularExponent.x); + // dp3_pp r0.x, r1, v6 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r0.z, v3, r1 + temp0.z = dot(i.texcoord6.xyz, temp1.xyz); + // cmp r0.w, -r0.x, c0.z, c0.w + temp0.w = (-temp0.x >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0, r0.w + temp0.xy = temp0.xy * temp0.ww; + // mul_pp r0.y, r1.w, r0.y + temp0.y = /* not implemented _pp modifier */ temp1.w * temp0.y; + // texld r1, v0, s5 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c13 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r1.xyz, r0.y, r1 + temp1.xyz = /* not implemented _pp modifier */ temp0.yyy * temp1.xyz; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r3.xyz, r2, c12 + temp3.xyz = /* not implemented _pp modifier */ temp2.xyz * DiffuseColor.xyz; + // mad_pp r0.xyw, r3.xyzz, r0.x, r1.xyzz + temp0.xyw = /* not implemented _pp modifier */ temp3.xyz * temp0.xxx + temp1.xyz; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyw, r0, r1.xyzz + temp0.xyw = temp0.xyw * temp1.xyz; + // mad_pp r0.xyw, r2.xyzz, v5.xyzz, r0 + temp0.xyw = /* not implemented _pp modifier */ temp2.xyz * i.color.xyz + temp0.xyw; + // texld r1, v4, s1 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord7.xy); + // mad_pp r1.xy, r1, c0.x, c0.y + temp1.xy = /* not implemented _pp modifier */ temp1.xy * float2(2, 2) + float2(-1, -1); + // mul_pp r1.xy, r1, c1.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * float2(0.04, 0.04); + // mad r1.zw, v4, c1.y, r1.xyxy + temp1.zw = i.texcoord7.zw * float2(1.5, 1.5) + temp1.xy; + // mad r1.xy, v4.wzzw, c1.z, r1 + temp1.xy = i.texcoord7.wz * float2(3, 3) + temp1.xy; + // texld r2, r1.zwzw, s2 + temp2 = /* not implemented _pp modifier */ tex2D(TeslaTextureSampler, temp1.zw); + // texld r1, r1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(TeslaTextureSampler, temp1.xy); + // mul_pp r1.xyz, r2, r1 + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xyz; + // mad_pp r0.xyw, r1.xyzz, c1.w, r0 + temp0.xyw = /* not implemented _pp modifier */ temp1.xyz * float3(20, 20, 20) + temp0.xyw; + // add r0.z, -r0.z, c0.w + temp0.z = -temp0.z + float1(1); + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // mul_pp r0.z, r0.z, r0.z + temp0.z = /* not implemented _pp modifier */ temp0.z * temp0.z; + // mad_pp r0.xyz, r0.z, c3, r0.xyww + temp0.xyz = /* not implemented _pp modifier */ temp0.zzz * float3(0.07, 0.15, 0.75) + temp0.xyw; + // min_pp r1.xyz, r0, c3.w + temp1.xyz = /* not implemented _pp modifier */ min(temp0.xyz, float3(4, 4, 4)); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.w + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; + float4 texcoord7 : TEXCOORD7; + float3 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2, -1, 0, 1 + // def c1, 0.25, 0.04, 1.5, 3 + // def c3, 20, 0.07, 0.15, 0.75 + // def c4, 4, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_texcoord7 v5 + // dcl_color v6.xyz + // dcl_texcoord1_centroid v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c0.w, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.w, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c1.x + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s5 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c0.x, c0.y + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yz, r0, c12.x + temp0.yz = /* not implemented _pp modifier */ temp0.yz * BumpScale.xx; + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // cmp r0.z, -r0.y, c0.z, c0.w + temp0.z = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.w, r0.y, c15.x + temp1.w = pow(temp0.y, SpecularExponent.x); + // dp3_pp r0.y, r1, v7 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r0.w, v4, r1 + temp0.w = dot(i.texcoord6.xyz, temp1.xyz); + // cmp r1.x, -r0.y, c0.z, c0.w + temp1.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.y, r1.x + temp1.y = /* not implemented _pp modifier */ temp0.y * temp1.x; + // mul r0.y, r0.z, r1.x + temp0.y = temp0.z * temp1.x; + // mul_pp r1.z, r1.w, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.w * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s6 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyz, r1.x, c14 + temp1.xyz = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r1.xyz, r0.y, r1 + temp1.xyz = /* not implemented _pp modifier */ temp0.yyy * temp1.xyz; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul_pp r3.xyz, r2, c13 + temp3.xyz = /* not implemented _pp modifier */ temp2.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r3, r0.x, r1 + temp0.xyz = /* not implemented _pp modifier */ temp3.xyz * temp0.xxx + temp1.xyz; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mad_pp r0.xyz, r2, v6, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * i.color.xyz + temp0.xyz; + // texld r1, v5, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord7.xy); + // mad_pp r1.xy, r1, c0.x, c0.y + temp1.xy = /* not implemented _pp modifier */ temp1.xy * float2(2, 2) + float2(-1, -1); + // mul_pp r1.xy, r1, c1.y + temp1.xy = /* not implemented _pp modifier */ temp1.xy * float2(0.04, 0.04); + // mad r1.zw, v5, c1.z, r1.xyxy + temp1.zw = i.texcoord7.zw * float2(1.5, 1.5) + temp1.xy; + // mad r1.xy, v5.wzzw, c1.w, r1 + temp1.xy = i.texcoord7.wz * float2(3, 3) + temp1.xy; + // texld r2, r1.zwzw, s3 + temp2 = /* not implemented _pp modifier */ tex2D(TeslaTextureSampler, temp1.zw); + // texld r1, r1, s3 + temp1 = /* not implemented _pp modifier */ tex2D(TeslaTextureSampler, temp1.xy); + // mul_pp r1.xyz, r2, r1 + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xyz; + // mad_pp r0.xyz, r1, c3.x, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(20, 20, 20) + temp0.xyz; + // add r0.w, -r0.w, c0.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul_pp r0.w, r0.w, r0.w + temp0.w = /* not implemented _pp modifier */ temp0.w * temp0.w; + // mad_pp r0.xyz, r0.w, c3.yzww, r0 + temp0.xyz = /* not implemented _pp modifier */ temp0.www * float3(0.07, 0.15, 0.75) + temp0.xyz; + // min_pp r1.xyz, r0, c4.x + temp1.xyz = /* not implemented _pp modifier */ min(temp0.xyz, float3(4, 4, 4)); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v2, s7 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c0.w + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord6 : TEXCOORD6; + float4 texcoord7 : TEXCOORD7; + float3 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, -1, 0, 1 + // def c3, 0.04, 1.5, 3, 20 + // def c4, 0.07, 0.15, 0.75, 4 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord6 v3.xyz + // dcl_texcoord7 v4 + // dcl_color v5.xyz + // dcl_texcoord1_centroid v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // texld r0, v0, s4 + temp0 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.xyz, r0, c1.x, c1.y + temp0.xyz = /* not implemented _pp modifier */ temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.xy, r0, c11.x + temp0.xy = /* not implemented _pp modifier */ temp0.xy * BumpScale.xx; + // nrm_pp r1.xyz, r0 + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.xyz).xyz; + // dp3_pp r0.x, r1, v1 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // cmp r0.y, -r0.x, c1.z, c1.w + temp0.y = (-temp0.x >= 0) ? float1(0) : float1(1); + // pow r1.w, r0.x, c14.x + temp1.w = pow(temp0.x, SpecularExponent.x); + // dp3_pp r0.x, r1, v6 + temp0.x = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r0.z, v3, r1 + temp0.z = dot(i.texcoord6.xyz, temp1.xyz); + // cmp r0.w, -r0.x, c1.z, c1.w + temp0.w = (-temp0.x >= 0) ? float1(0) : float1(1); + // mul r0.xy, r0, r0.w + temp0.xy = temp0.xy * temp0.ww; + // mul_pp r0.y, r1.w, r0.y + temp0.y = /* not implemented _pp modifier */ temp1.w * temp0.y; + // texld r1, v0, s5 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyw, r1.x, c13.xyzz + temp1.xyw = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r1.xyw, r0.y, r1 + temp1.xyw = /* not implemented _pp modifier */ temp0.yyy * temp1.xyw; + // texld r2, v0, s3 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r3.xyz, r2, c0 + temp3.xyz = temp2.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r2 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r2.xyz, r1.z, r3, r2 + temp2.xyz = /* not implemented _pp modifier */ temp1.zzz * temp3.xyz + temp2.xyz; + // mul_pp r3.xyz, r2, c12 + temp3.xyz = /* not implemented _pp modifier */ temp2.xyz * DiffuseColor.xyz; + // mad_pp r0.xyw, r3.xyzz, r0.x, r1 + temp0.xyw = /* not implemented _pp modifier */ temp3.xyz * temp0.xxx + temp1.xyw; + // texld r1, v2.zwzw, s0 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyw, r0, r1.xyzz + temp0.xyw = temp0.xyw * temp1.xyz; + // mad_pp r0.xyw, r2.xyzz, v5.xyzz, r0 + temp0.xyw = /* not implemented _pp modifier */ temp2.xyz * i.color.xyz + temp0.xyw; + // texld r1, v4, s1 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord7.xy); + // mad_pp r1.xy, r1, c1.x, c1.y + temp1.xy = /* not implemented _pp modifier */ temp1.xy * float2(2, 2) + float2(-1, -1); + // mul_pp r1.xy, r1, c3.x + temp1.xy = /* not implemented _pp modifier */ temp1.xy * float2(0.04, 0.04); + // mad r1.zw, v4, c3.y, r1.xyxy + temp1.zw = i.texcoord7.zw * float2(1.5, 1.5) + temp1.xy; + // mad r1.xy, v4.wzzw, c3.z, r1 + temp1.xy = i.texcoord7.wz * float2(3, 3) + temp1.xy; + // texld r2, r1.zwzw, s2 + temp2 = /* not implemented _pp modifier */ tex2D(TeslaTextureSampler, temp1.zw); + // texld r1, r1, s2 + temp1 = /* not implemented _pp modifier */ tex2D(TeslaTextureSampler, temp1.xy); + // mul_pp r1.xyz, r2, r1 + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xyz; + // mad_pp r0.xyw, r1.xyzz, c3.w, r0 + temp0.xyw = /* not implemented _pp modifier */ temp1.xyz * float3(20, 20, 20) + temp0.xyw; + // add r0.z, -r0.z, c1.w + temp0.z = -temp0.z + float1(1); + // mul r0.z, r0.z, r0.z + temp0.z = temp0.z * temp0.z; + // mul_pp r0.z, r0.z, r0.z + temp0.z = /* not implemented _pp modifier */ temp0.z * temp0.z; + // mad_pp r0.xyz, r0.z, c4, r0.xyww + temp0.xyz = /* not implemented _pp modifier */ temp0.zzz * float3(0.07, 0.15, 0.75) + temp0.xyw; + // min_pp r1.xyz, r0, c4.w + temp1.xyz = /* not implemented _pp modifier */ min(temp0.xyz, float3(4, 4, 4)); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v2, s6 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c1.w + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; + float4 texcoord7 : TEXCOORD7; + float3 color : COLOR; + float3 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, -1, 0, 1 + // def c3, 0.25, 0.04, 1.5, 3 + // def c4, 20, 0.07, 0.15, 0.75 + // def c6, 4, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord2_centroid v1.xyz + // dcl_texcoord3 v2 + // dcl_texcoord4 v3.xyz + // dcl_texcoord6 v4.xyz + // dcl_texcoord7 v5 + // dcl_color v6.xyz + // dcl_texcoord1_centroid v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // add r0.xy, c11.zxzw, v3 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord4.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v3 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord4.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v3, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord4.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v3.z + temp0 = temp0 + -i.texcoord4.z; + // cmp r0, r0, c1.w, c1.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c1.w, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c3.x + temp0.x = temp0.x * float1(0.25); + // texld r1, v0, s5 + temp1 = /* not implemented _pp modifier */ tex2D(NormalMapSampler, i.texcoord.xy); + // mad_pp r0.yzw, r1.xxyz, c1.x, c1.y + temp0.yzw = /* not implemented _pp modifier */ temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul_pp r0.yz, r0, c12.x + temp0.yz = /* not implemented _pp modifier */ temp0.yz * BumpScale.xx; + // nrm_pp r1.xyz, r0.yzww + temp1.xyz = /* not implemented _pp modifier */ normalize(temp0.yzww.xyz).xyz; + // dp3_pp r0.y, r1, v1 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord2.xyz); + // cmp r0.z, -r0.y, c1.z, c1.w + temp0.z = (-temp0.y >= 0) ? float1(0) : float1(1); + // pow r1.w, r0.y, c15.x + temp1.w = pow(temp0.y, SpecularExponent.x); + // dp3_pp r0.y, r1, v7 + temp0.y = /* not implemented _pp modifier */ dot(temp1.xyz, i.texcoord1.xyz); + // dp3 r0.w, v4, r1 + temp0.w = dot(i.texcoord6.xyz, temp1.xyz); + // cmp r1.x, -r0.y, c1.z, c1.w + temp1.x = (-temp0.y >= 0) ? float1(0) : float1(1); + // mul_pp r1.y, r0.y, r1.x + temp1.y = /* not implemented _pp modifier */ temp0.y * temp1.x; + // mul r0.y, r0.z, r1.x + temp0.y = temp0.z * temp1.x; + // mul_pp r1.z, r1.w, r0.y + temp1.z = /* not implemented _pp modifier */ temp1.w * temp0.y; + // mul_pp r0.xy, r0.x, r1.yzzw + temp0.xy = /* not implemented _pp modifier */ temp0.xx * temp1.yz; + // texld r1, v0, s6 + temp1 = /* not implemented _pp modifier */ tex2D(SpecMapSampler, i.texcoord.xy); + // mul_pp r1.xyw, r1.x, c14.xyzz + temp1.xyw = /* not implemented _pp modifier */ temp1.xxx * SpecularColor.xyz; + // mul_pp r1.xyw, r0.y, r1 + temp1.xyw = /* not implemented _pp modifier */ temp0.yyy * temp1.xyw; + // texld r2, v0, s4 + temp2 = /* not implemented _pp modifier */ tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r3.xyz, r2, c0 + temp3.xyz = temp2.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r2 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp2.xyz; + // mad_pp r2.xyz, r1.z, r3, r2 + temp2.xyz = /* not implemented _pp modifier */ temp1.zzz * temp3.xyz + temp2.xyz; + // mul_pp r3.xyz, r2, c13 + temp3.xyz = /* not implemented _pp modifier */ temp2.xyz * DiffuseColor.xyz; + // mad_pp r0.xyz, r3, r0.x, r1.xyww + temp0.xyz = /* not implemented _pp modifier */ temp3.xyz * temp0.xxx + temp1.xyw; + // texld r1, v2.zwzw, s1 + temp1 = /* not implemented _pp modifier */ tex2D(CloudTextureSampler, i.texcoord3.zw); + // mul r1.xyz, r1, c5 + temp1.xyz = temp1.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mad_pp r0.xyz, r2, v6, r0 + temp0.xyz = /* not implemented _pp modifier */ temp2.xyz * i.color.xyz + temp0.xyz; + // texld r1, v5, s2 + temp1 = /* not implemented _pp modifier */ tex2D(FractalNormalMapSampler, i.texcoord7.xy); + // mad_pp r1.xy, r1, c1.x, c1.y + temp1.xy = /* not implemented _pp modifier */ temp1.xy * float2(2, 2) + float2(-1, -1); + // mul_pp r1.xy, r1, c3.y + temp1.xy = /* not implemented _pp modifier */ temp1.xy * float2(0.04, 0.04); + // mad r1.zw, v5, c3.z, r1.xyxy + temp1.zw = i.texcoord7.zw * float2(1.5, 1.5) + temp1.xy; + // mad r1.xy, v5.wzzw, c3.w, r1 + temp1.xy = i.texcoord7.wz * float2(3, 3) + temp1.xy; + // texld r2, r1.zwzw, s3 + temp2 = /* not implemented _pp modifier */ tex2D(TeslaTextureSampler, temp1.zw); + // texld r1, r1, s3 + temp1 = /* not implemented _pp modifier */ tex2D(TeslaTextureSampler, temp1.xy); + // mul_pp r1.xyz, r2, r1 + temp1.xyz = /* not implemented _pp modifier */ temp2.xyz * temp1.xyz; + // mad_pp r0.xyz, r1, c4.x, r0 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * float3(20, 20, 20) + temp0.xyz; + // add r0.w, -r0.w, c1.w + temp0.w = -temp0.w + float1(1); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul_pp r0.w, r0.w, r0.w + temp0.w = /* not implemented _pp modifier */ temp0.w * temp0.w; + // mad_pp r0.xyz, r0.w, c4.yzww, r0 + temp0.xyz = /* not implemented _pp modifier */ temp0.www * float3(0.07, 0.15, 0.75) + temp0.xyz; + // min_pp r1.xyz, r0, c6.x + temp1.xyz = /* not implemented _pp modifier */ min(temp0.xyz, float3(4, 4, 4)); + // mul_pp r0.xyz, r1, c2 + temp0.xyz = /* not implemented _pp modifier */ temp1.xyz * TintColor.xyz; + // texld r1, v2, s7 + temp1 = /* not implemented _pp modifier */ tex2D(ShroudTextureSampler, i.texcoord3.xy); + // mul_pp oC0.xyz, r0, r1 + out_color.xyz = /* not implemented _pp modifier */ temp0.xyz * temp1.xyz; + // mov_pp oC0.w, c1.w + out_color.w = /* not implemented _pp modifier */ float1(1); + // + + return out_color; +} + +PixelShader PS_M_Array[4] = { + compile ps_3_0 PS_M_Array_Shader_0(), // 119 + compile ps_3_0 PS_M_Array_Shader_1(), // 120 + compile ps_3_0 PS_M_Array_Shader_2(), // 121 + compile ps_3_0 PS_M_Array_Shader_3(), // 122 +}; +// VS_L_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_0_Output VS_L_Array_Shader_0(VS_L_Array_Shader_0_Input i) +{ + VS_L_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c13.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // dp3 r1.x, v1, c124 + temp1.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r1.y, v1, c125 + temp1.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r1.z, v1, c126 + temp1.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.z, r1, c8 + temp0.z = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mul r2.xyz, r0.z, c7 + temp2.xyz = temp0.zzz * DirectionalLight[1].Color.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.w, r1, c10 + temp0.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.z, r0.z, c0.y + temp0.z = max(temp0.z, float1(0)); + // mad r1.xyz, c5, r0.z, r2 + temp1.xyz = DirectionalLight[0].Color.xyz * temp0.zzz + temp2.xyz; + // max r0.z, r0.w, c0.y + temp0.z = max(temp0.w, float1(0)); + // mad r1.xyz, c9, r0.z, r1 + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.xyz; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mul oD0, r1, v3 + o.color = temp1 * i.color; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v2.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +// VS_L_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_L_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_L_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float4 texcoord : TEXCOORD; +}; + +VS_L_Array_Shader_1_Output VS_L_Array_Shader_1(VS_L_Array_Shader_1_Input i) +{ + VS_L_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c13.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul r1, v1.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v1.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v1.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // dp3 r0.z, r1, c6 + temp0.z = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r0.z, r0.z, c0.z + temp0.z = max(temp0.z, float1(0)); + // dp3 r0.w, r1, c8 + temp0.w = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r1.x, r1, c10 + temp1.x = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.z + temp0.w = max(temp0.w, float1(0)); + // mul r1.yzw, r0.w, c7.xxyz + temp1.yzw = temp0.www * DirectionalLight[1].Color.xyz; + // mad r1.yzw, c5.xxyz, r0.z, r1 + temp1.yzw = DirectionalLight[0].Color.xyz * temp0.zzz + temp1.yzw; + // max r0.z, r1.x, c0.z + temp0.z = max(temp1.x, float1(0)); + // mad r1.xyz, c9, r0.z, r1.yzww + temp1.xyz = DirectionalLight[2].Color.xyz * temp0.zzz + temp1.yzw; + // mul r1.xyz, r1, c12 + temp1.xyz = temp1.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r1.xyz, r2, c11, r1 + temp1.xyz = temp2.xyz * AmbientColor.xyz + temp1.xyz; + // slt r0.z, v2.x, -v2.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.w, v2.x + temp0.w = frac(i.blendindices.x); + // add r2.x, -r0.w, v2.x + temp2.x = -temp0.w + i.blendindices.x; + // slt r0.w, -r0.w, r0.w + temp0.w = (-temp0.w < temp0.w) ? 1 : 0; + // mad r0.z, r0.z, r0.w, r2.x + temp0.z = temp0.z * temp0.w + temp2.x; + // add r0.z, r0.z, r0.z + temp0.z = temp0.z + temp0.z; + // mova a0.x, r0.z + addr0.x = temp0.z; + // mul r2.w, v4.w, c129[a0.x].w + temp2.w = i.color.w * WorldBones[1 + addr0.x].w; + // mov r1.w, c1.x + temp1.w = OpacityOverride.x; + // mov r2.xyz, v4 + temp2.xyz = i.color.xyz; + // mul oD0, r1, r2 + o.color = temp1 * temp2; + // mul oT1.xy, r0, c13 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0, v3.xyyx + o.texcoord = i.texcoord.xyyx; + // + + return o; +} + +VertexShader VS_L_Array[2] = { + compile vs_2_0 VS_L_Array_Shader_0(), // 126 + compile vs_2_0 VS_L_Array_Shader_1(), // 127 +}; +// PS_L_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_0(PS_L_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r2.xyz, r1, r0 + temp2.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// PS_L_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_L_Array_Shader_1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_L_Array_Shader_1(PS_L_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c1, 2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s1 + temp0 = tex2D(SpecMapSampler, i.texcoord.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r3.xyz, r1, c0 + temp3.xyz = temp1.xyz * RecolorColor.xyz; + // mad r3.xyz, r3, c1.x, -r1 + temp3.xyz = temp3.xyz * float3(2, 2, 2) + -temp1.xyz; + // mad r0.xyz, r0.z, r3, r1 + temp0.xyz = temp0.zzz * temp3.xyz + temp1.xyz; + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mul r0.xyz, r0, c2 + temp0.xyz = temp0.xyz * TintColor.xyz; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_L_Array[2] = { + compile ps_2_0 PS_L_Array_Shader_0(), // 128 + compile ps_2_0 PS_L_Array_Shader_1(), // 129 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.y, r1, c122 + temp0.y = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c121 + temp0.x = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.y + temp0.z = 1.0f / temp0.y; + // mov oPos.zw, r0.xyxy + o.position.zw = temp0.xy; + // mul oT1.x, r0.x, r0.z + o.texcoord1 = temp0.x * temp0.z; + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES False +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float color : COLOR; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // slt r0.x, v1.x, -v1.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v1.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v1.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 133 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 134 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; + float color : COLOR; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl v0.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mad r0, r0.w, v0.x, c0.x + temp0 = temp0.w * i.color.x + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 135 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 136 +}; +// _CreateShadowMap_Expression27 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression27() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaTestEnable.x; + return expr0; +} + +// _CreateShadowMap_Expression28 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression28() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_L_Expression29 Expression_2_0 Has PRES False +float Default_L_Expression29() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasRecolorColors.x; + return expr0; +} + +// Default_L_Expression30 Expression_2_0 Has PRES False +float Default_L_Expression30() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression31 Expression_2_0 Has PRES False +float Default_M_Expression31() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_M_Expression32 Expression_2_0 Has PRES False +float Default_M_Expression32() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression33 Expression_2_0 Has PRES False +float Default_Expression33() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression34 Expression_2_0 Has PRES False +float Default_Expression34() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression35 Expression_2_0 Has PRES False +float Default_Expression35() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = HasRecolorColors.x + HasRecolorColors.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// Default_Expression36 Expression_2_0 Has PRES False +float Default_Expression36() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_H_Array[Default_Expression36()]; // 113 + PixelShader = PS_H_Array[Default_Expression35()]; // 114 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } + pass p1 + { + VertexShader = VS_H_Tesla_Array[Default_Expression34()]; // 115 + PixelShader = PS_H_Tesla_Array[Default_Expression33()]; // 116 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + StencilEnable = 0; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression32()]; // 124 + PixelShader = PS_M_Array[Default_M_Expression31()]; // 125 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_L +{ + pass p0 + { + VertexShader = VS_L_Array[Default_L_Expression30()]; // 131 + PixelShader = PS_L_Array[Default_L_Expression29()]; // 132 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + SrcBlend = 5; + DestBlend = 6; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression28()]; // 137 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression27()]; // 138 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/occlusion.fx b/occlusion.fx new file mode 100644 index 0000000..f3106ec --- /dev/null +++ b/occlusion.fx @@ -0,0 +1,165 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +float4 FlatColor ; +// _FillColor_PixelShader1 Pixel_2_0 Has PRES True +float4 _FillColor_PixelShader1() : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // mov c11, c0 + expr11 = FlatColor; + } + + float4 out_color; + // mov oC0, c11 + out_color = expr11; + // + + return out_color; +} + +// _FillColor_VertexShader2 Vertex_2_0 Has PRES False +float4 _FillColor_VertexShader2(float4 position : POSITION) : POSITION +{ + float4 out_position; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + out_position.xyz = position.xyz; + // mov oPos.w, c0.x + out_position.w = float1(1); + // + + return out_position; +} + +// _ClearStencil_PixelShader3 Pixel_2_0 Has PRES True +float4 _ClearStencil_PixelShader3() : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // mov c11, c0 + expr11 = FlatColor; + } + + float4 out_color; + // mov oC0, c11 + out_color = expr11; + // + + return out_color; +} + +// _ClearStencil_VertexShader4 Vertex_2_0 Has PRES False +float4 _ClearStencil_VertexShader4(float4 position : POSITION) : POSITION +{ + float4 out_position; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + out_position.xyz = position.xyz; + // mov oPos.w, c0.x + out_position.w = float1(1); + // + + return out_position; +} + +technique _ClearStencil +{ + pass P0 + { + VertexShader = compile vs_2_0 _ClearStencil_VertexShader4(); // 4 + PixelShader = compile ps_2_0 _ClearStencil_PixelShader3(); // 5 + ColorWriteEnable = 0; + ZEnable = 1; + ZFunc = 1; + ZWriteEnable = 0; + CullMode = 1; + StencilEnable = 1; + StencilFunc = 2; + StencilPass = 3; + StencilZFail = 3; + StencilFail = 2; + StencilMask = 0; + StencilWriteMask = 0; + StencilRef = 0; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique _FillColor +{ + pass P0 + { + VertexShader = compile vs_2_0 _FillColor_VertexShader2(); // 6 + PixelShader = compile ps_2_0 _FillColor_PixelShader1(); // 7 + ColorWriteEnable = 15; + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + StencilEnable = 1; + StencilFunc = 3; + StencilPass = 1; + StencilZFail = 1; + StencilFail = 1; + StencilWriteMask = -1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + diff --git a/ocean.fx b/ocean.fx new file mode 100644 index 0000000..e2a8f28 --- /dev/null +++ b/ocean.fx @@ -0,0 +1,1214 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(ps_3_0, c5) : register(ps_2_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(ps_3_0, c123) : register(vs_2_0, c123) ; +column_major float4x4 ViewProjection : register(ps_3_0, c119) : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] ; +bool HasShadow ; +texture ShadowMap ; // 4 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 7 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +texture StaticDisplacementTexture ; // 13 +sampler2D StaticDisplacementTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 15 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture WaterReflectionTexture ; // 18 +sampler2D WaterReflectionTextureSampler = +sampler_state +{ + Texture = ; // 21 + MipFilter = 1; + MinFilter = 2; + MagFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture WaterRefractionTexture ; // 25 +sampler2D WaterRefractionTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 28 + MipFilter = 1; + MinFilter = 2; + MagFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture EnvironmentTexture ; // 32 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 36 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_3_0, c23) = { 1, 1, 0, 0 }; +texture ShroudSampler ; // 43 +sampler2D ShroudSamplerSampler = +sampler_state +{ + Texture = ; // 46 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float4 MaterialColorDiffuse = { 1, 1, 1, 0 }; +texture Foam ; // 52 +sampler2D FoamSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float FoamHeight ; +float FoamBlend = { 1 }; +float Foam1Scalar = { 1 }; +float Foam2Scalar = { 1 }; +float FoamSpeed = { 1 }; +float OctaveScalar = { 1 }; +float OctaveDivergenceAngle ; +float OctaveSpeed = { 1 }; +float OctaveDivergenceSpeed ; +float WaveAmplitude : register(vs_2_0, c31) = { 3 }; +float WaveFrequency : register(vs_2_0, c32) = { 0.2 }; +texture DisplacementTexture ; // 79 +sampler2D DisplacementTextureSampler : register(vs_3_0, s0) = +sampler_state +{ + Texture = ; // 81 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float DisplacementTextureSize ; +struct +{ + float frequency; + float amplitude; + float phase; + float2 direction; +} wave[3] : register(vs_2_0, c11) = { 0.1, 1, 1, 0.2, -0.7, 0.25, 0.5, 0.5, -1, -0.7, 0.15, 0.5, 1.5, -1, 0.2 }; +column_major float4x3 World : World : register(vs_3_0, c20); +float Time : Time : register(vs_2_0, c33); +// PS_WaterShadowMap_Array_Shader_0 Pixel_3_0 Has PRES True +struct PS_WaterShadowMap_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_WaterShadowMap_Array_Shader_0(PS_WaterShadowMap_Array_Shader_0_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // rcp c11.x, c0.x + expr11.x = 1.0f / (DisplacementTextureSize.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 2, -1, 1, 0 + // def c1, 50, 0.5, 0.2, 2.2 + // def c2, 50, 0, 1, 0.025 + // def c3, 3, 0.15, -0.1, 0 + // dcl_color v0.w + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_texcoord3 v3 + // dcl_texcoord4 v4 + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_cube s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // mov r0.zw, c0 + temp0.zw = float2(1, 0); + // mad r0.xy, c11.x, r0.zwzw, v4 + temp0.xy = expr11.xx * temp0.zw + i.texcoord4.xy; + // texld r1, r0, s6 + temp1 = tex2D(DisplacementTextureSampler, temp0.xy); + // texld r2, v4, s6 + temp2 = tex2D(DisplacementTextureSampler, i.texcoord4.xy); + // add r0.x, r1.z, -r2.z + temp0.x = temp1.z + -temp2.z; + // mad r0.zw, c11.x, r0.xywz, v4.xyxy + temp0.zw = expr11.xx * temp0.wz + i.texcoord4.xy; + // texld r1, r0.zwzw, s6 + temp1 = tex2D(DisplacementTextureSampler, temp0.zw); + // add r0.y, -r2.z, r1.z + temp0.y = -temp2.z + temp1.z; + // mul r0.xy, r0, c1.x + temp0.xy = temp0.xy * float2(50, 50); + // texld r1, v2, s0 + temp1 = tex2D(StaticDisplacementTextureSampler, i.texcoord1.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // texld r2, v2.zwzw, s0 + temp2 = tex2D(StaticDisplacementTextureSampler, i.texcoord1.zw); + // mad r1.xyz, r2, c0.x, r1 + temp1.xyz = temp2.xyz * float3(2, 2, 2) + temp1.xyz; + // add r1.xyz, r1, c0.y + temp1.xyz = temp1.xyz + float3(-1, -1, -1); + // mov r0.z, c1.y + temp0.z = float1(0.5); + // mad r0.xyz, r1, c1.z, r0 + temp0.xyz = temp1.xyz * float3(0.2, 0.2, 0.2) + temp0.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mad r0.xyz, r1, c2.x, c2.yyzw + temp0.xyz = temp1.xyz * float3(50, 50, 50) + float3(0, 0, 1); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // add r0.xyz, c123, -v3 + temp0.xyz = EyePosition.xyz + -i.texcoord3.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // add r0.y, r0.x, r0.x + temp0.y = temp0.x + temp0.x; + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mad r0.yzw, r1.xxyz, -r0.y, r2.xxyz + temp0.yzw = temp1.xyz * -temp0.yyy + temp2.xyz; + // mov r0.yzw, -r0 + temp0.yzw = -temp0.yzw; + // texld r2, r0.yzww, s3 + temp2 = texCUBE(EnvironmentTextureSampler, temp0.yzw); + // log r0.y, r2.x + temp0.y = log2(temp2.x); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.z + temp0.w = log2(temp2.z); + // mul r0.yzw, r0, c1.w + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.y + temp2.x = exp2(temp0.y); + // exp r2.y, r0.z + temp2.y = exp2(temp0.z); + // exp r2.z, r0.w + temp2.z = exp2(temp0.w); + // mul r0.yzw, r2.xxyz, c5.xxyz + temp0.yzw = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0.x, r0.yzww + temp0.xyz = temp0.xxx * temp0.yzw; + // mul r1.zw, r1.xyxy, c1.z + temp1.zw = temp1.xy * float2(0.2, 0.2); + // mad r1.xy, r1, c3.y, v4.zwzw + temp1.xy = temp1.xy * float2(0.15, 0.15) + i.texcoord4.zw; + // mad r2, v3.xyzx, c0.zzzw, c0.wwwz + temp2 = i.texcoord3.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r3.x, r2, c119 + temp3.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 r3.y, r2, c120 + temp3.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.w, r2, c122 + temp0.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add r2.xy, r3, r0.w + temp2.xy = temp3.xy + temp0.ww; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mul r2.xy, r2, c1.y + temp2.xy = temp2.xy * float2(0.5, 0.5); + // mad r1.zw, r2.xyxy, r0.w, r1 + temp1.zw = temp2.xy * temp0.ww + temp1.zw; + // texld r2, r1.zwzw, s1 + temp2 = tex2D(WaterReflectionTextureSampler, temp1.zw); + // texld r3, v1, s5 + temp3 = tex2D(FoamSampler, i.texcoord.xy); + // texld r4, v1.zwzw, s5 + temp4 = tex2D(FoamSampler, i.texcoord.zw); + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul r3.xyz, r3, r3 + temp3.xyz = temp3.xyz * temp3.xyz; + // mul r0.w, c1.z, v3.w + temp0.w = float1(0.2) * i.texcoord3.w; + // max r1.z, r0.w, c2.w + temp1.z = max(temp0.w, float1(0.025)); + // min r0.w, r1.z, c3.x + temp0.w = min(temp1.z, float1(3)); + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mad r2.xyz, r2, c1.y, r3 + temp2.xyz = temp2.xyz * float3(0.5, 0.5, 0.5) + temp3.xyz; + // mad r0.xyz, r0, c0.x, r2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + temp2.xyz; + // texld r1, r1, s2 + temp1 = tex2D(WaterRefractionTextureSampler, temp1.xy); + // texld r2, v4.zwzw, s2 + temp2 = tex2D(WaterRefractionTextureSampler, i.texcoord4.zw); + // add r3.xyz, r1, -r2 + temp3.xyz = temp1.xyz + -temp2.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // add r0.w, r0.w, c3.z + temp0.w = temp0.w + float1(-0.1); + // cmp r1.xyz, r0.w, r2, r1 + temp1.xyz = (temp0.www >= 0) ? temp2.xyz : temp1.xyz; + // texld r2, v5, s4 + temp2 = tex2D(ShroudSamplerSampler, i.texcoord5.xy); + // mad oC0.xyz, r2.x, r0, r1 + out_color.xyz = temp2.xxx * temp0.xyz + temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_WaterShadowMap_Array_Shader_1 Pixel_3_0 Has PRES True +struct PS_WaterShadowMap_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_WaterShadowMap_Array_Shader_1(PS_WaterShadowMap_Array_Shader_1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // rcp c12.x, c0.x + expr12.x = 1.0f / (DisplacementTextureSize.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 2, -1, 1, 0 + // def c1, 50, 0.5, 0.2, 0.01 + // def c2, 50, 0, 1, 0.25 + // def c3, 2.2, 0.025, 3, 0.15 + // def c4, -0.1, 0, 0, 0 + // dcl_color v0.w + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_texcoord2 v3.xyz + // dcl_texcoord3 v4 + // dcl_texcoord4 v5 + // dcl_texcoord5 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_cube s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // mov r0.zw, c0 + temp0.zw = float2(1, 0); + // mad r0.xy, c12.x, r0.zwzw, v5 + temp0.xy = expr12.xx * temp0.zw + i.texcoord4.xy; + // texld r1, r0, s7 + temp1 = tex2D(DisplacementTextureSampler, temp0.xy); + // texld r2, v5, s7 + temp2 = tex2D(DisplacementTextureSampler, i.texcoord4.xy); + // add r0.x, r1.z, -r2.z + temp0.x = temp1.z + -temp2.z; + // mad r0.zw, c12.x, r0.xywz, v5.xyxy + temp0.zw = expr12.xx * temp0.wz + i.texcoord4.xy; + // texld r1, r0.zwzw, s7 + temp1 = tex2D(DisplacementTextureSampler, temp0.zw); + // add r0.y, -r2.z, r1.z + temp0.y = -temp2.z + temp1.z; + // mul r0.xy, r0, c1.x + temp0.xy = temp0.xy * float2(50, 50); + // texld r1, v2, s1 + temp1 = tex2D(StaticDisplacementTextureSampler, i.texcoord1.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // texld r2, v2.zwzw, s1 + temp2 = tex2D(StaticDisplacementTextureSampler, i.texcoord1.zw); + // mad r1.xyz, r2, c0.x, r1 + temp1.xyz = temp2.xyz * float3(2, 2, 2) + temp1.xyz; + // add r1.xyz, r1, c0.y + temp1.xyz = temp1.xyz + float3(-1, -1, -1); + // mov r0.z, c1.y + temp0.z = float1(0.5); + // mad r0.xyz, r1, c1.z, r0 + temp0.xyz = temp1.xyz * float3(0.2, 0.2, 0.2) + temp0.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r0.xy, r1, c1.w + temp0.xy = temp1.xy * float2(0.01, 0.01); + // mad r1.xyz, r1, c2.x, c2.yyzw + temp1.xyz = temp1.xyz * float3(50, 50, 50) + float3(0, 0, 1); + // mov r0.z, c0.w + temp0.z = float1(0); + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord2.xyz; + // add r2.xy, r0, c11.zxzw + temp2.xy = temp0.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r2.y, r2.x + temp2.y = temp2.x; + // add r3.xy, r0, c11.yzzw + temp3.xy = temp0.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // texld r3, r3, s0 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // mov r2.z, r3.x + temp2.z = temp3.x; + // add r3.xy, r0, c11.wzzw + temp3.xy = temp0.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r3, r3, s0 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // mov r2.w, r3.x + temp2.w = temp3.x; + // texld r3, r0, s0 + temp3 = tex2D(ShadowMapSampler, temp0.xy); + // mov r2.x, r3.x + temp2.x = temp3.x; + // add r0, -r0.z, r2 + temp0 = -temp0.z + temp2; + // cmp r0, r0, c0.z, c0.w + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c2.w + temp0.x = temp0.x * float1(0.25); + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // add r0.yzw, c123.xxyz, -v4.xxyz + temp0.yzw = EyePosition.xyz + -i.texcoord3.xyz; + // nrm r1.xyz, r0.yzww + temp1.xyz = normalize(temp0.yzww.xyz).xyz; + // dp3 r0.y, r1, r2 + temp0.y = dot(temp1.xyz, temp2.xyz); + // add r0.z, r0.y, r0.y + temp0.z = temp0.y + temp0.y; + // add r0.y, -r0.y, c0.z + temp0.y = -temp0.y + float1(1); + // mad r1.xyz, r2, -r0.z, r1 + temp1.xyz = temp2.xyz * -temp0.zzz + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s4 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r1.xyz, r3, c3.x + temp1.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r1.x + temp3.x = exp2(temp1.x); + // exp r3.y, r1.y + temp3.y = exp2(temp1.y); + // exp r3.z, r1.z + temp3.z = exp2(temp1.z); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0.y, r1.xxyz + temp0.yzw = temp0.yyy * temp1.xyz; + // mul r0.xyz, r0.x, r0.yzww + temp0.xyz = temp0.xxx * temp0.yzw; + // mul r1.xy, r2, c1.z + temp1.xy = temp2.xy * float2(0.2, 0.2); + // mad r1.zw, r2.xyxy, c3.w, v5 + temp1.zw = temp2.xy * float2(0.15, 0.15) + i.texcoord4.zw; + // mad r2, v4.xyzx, c0.zzzw, c0.wwwz + temp2 = i.texcoord3.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r3.x, r2, c119 + temp3.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 r3.y, r2, c120 + temp3.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.w, r2, c122 + temp0.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add r2.xy, r3, r0.w + temp2.xy = temp3.xy + temp0.ww; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mul r2.xy, r2, c1.y + temp2.xy = temp2.xy * float2(0.5, 0.5); + // mad r1.xy, r2, r0.w, r1 + temp1.xy = temp2.xy * temp0.ww + temp1.xy; + // texld r2, r1, s2 + temp2 = tex2D(WaterReflectionTextureSampler, temp1.xy); + // texld r3, v1, s6 + temp3 = tex2D(FoamSampler, i.texcoord.xy); + // texld r4, v1.zwzw, s6 + temp4 = tex2D(FoamSampler, i.texcoord.zw); + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul r3.xyz, r3, r3 + temp3.xyz = temp3.xyz * temp3.xyz; + // mul r0.w, c1.z, v4.w + temp0.w = float1(0.2) * i.texcoord3.w; + // max r1.x, r0.w, c3.y + temp1.x = max(temp0.w, float1(0.025)); + // min r0.w, r1.x, c3.z + temp0.w = min(temp1.x, float1(3)); + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mad r2.xyz, r2, c1.y, r3 + temp2.xyz = temp2.xyz * float3(0.5, 0.5, 0.5) + temp3.xyz; + // mad r0.xyz, r0, c0.x, r2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + temp2.xyz; + // texld r1, r1.zwzw, s3 + temp1 = tex2D(WaterRefractionTextureSampler, temp1.zw); + // texld r2, v5.zwzw, s3 + temp2 = tex2D(WaterRefractionTextureSampler, i.texcoord4.zw); + // add r3.xyz, r1, -r2 + temp3.xyz = temp1.xyz + -temp2.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // add r0.w, r0.w, c4.x + temp0.w = temp0.w + float1(-0.1); + // cmp r1.xyz, r0.w, r2, r1 + temp1.xyz = (temp0.www >= 0) ? temp2.xyz : temp1.xyz; + // texld r2, v6, s5 + temp2 = tex2D(ShroudSamplerSampler, i.texcoord5.xy); + // mad oC0.xyz, r2.x, r0, r1 + out_color.xyz = temp2.xxx * temp0.xyz + temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +PixelShader PS_WaterShadowMap_Array[2] = { + compile ps_3_0 PS_WaterShadowMap_Array_Shader_0(), // 85 + compile ps_3_0 PS_WaterShadowMap_Array_Shader_1(), // 86 +}; +// Default_L_PixelShader3 Pixel_2_0 Has PRES False +struct Default_L_PixelShader3_Input +{ + float4 color : COLOR; + float3 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Default_L_PixelShader3(Default_L_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.2, 0, 0, 0 + // dcl v0 + // dcl t0.xyz + // dcl t1 + // dcl_cube s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = texCUBE(EnvironmentTextureSampler, i.texcoord.xyz); + // mad r0.xyz, r0, c5, v0 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz + i.color.xyz; + // mov r1.xy, t1.wzyx + temp1.xy = i.texcoord1.wz; + // texld r1, r1, s2 + temp1 = tex2D(FoamSampler, temp1.xy); + // texld r2, t1, s1 + temp2 = tex2D(ShroudSamplerSampler, i.texcoord1.xy); + // mad r0.xyz, r1, c0.x, r0 + temp0.xyz = temp1.xyz * float3(0.2, 0.2, 0.2) + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r2.x, r0 + temp0 = temp2.x * temp0; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_L_VertexShader4 Vertex_2_0 Has PRES True +struct Default_L_VertexShader4_Output +{ + float4 position : POSITION; + float3 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +Default_L_VertexShader4_Output Default_L_VertexShader4(float4 position : POSITION) +{ + /* + PRSI + OutputRegisterOffset: 15 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 15 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr15; + { + // Expression_2_1 + // mul c15.x, c0.x, (0.05) + expr15.x = Time.x * (0.05); + } + + Default_L_VertexShader4_Output o; + float4 temp0; + float3 temp1, temp2; + // def c0, 0.01, 0, 0, 0 + // def c1, 1, 0, -0, -2 + // def c2, 0.16, 0.47, 0.69, 0.6 + // dcl_position v0 + // mov r0.w, c1.x + temp0.w = float1(1); + // mad r1.xyz, v0.xyxw, c1.xxyw, c1.zzxw + temp1.xyz = position.xyx * float3(1, 1, 0) + float3(-0, -0, 1); + // dp3 r0.z, r1, c13.xyww + temp0.z = dot(temp1.xyz, (World._m02_m12_m22_m32).xyw); + // dp3 r0.x, r1, c11.xyww + temp0.x = dot(temp1.xyz, (World._m00_m10_m20_m30).xyw); + // dp3 r0.y, r1, c12.xyww + temp0.y = dot(temp1.xyz, (World._m01_m11_m21_m31).xyw); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xyz, -r0, c123 + temp1.xyz = -temp0.xyz + EyePosition.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // mad r1.xyz, r2.z, c1.zzww, r2 + temp1.xyz = temp2.zzz * float3(-0, -0, -2) + temp2.xyz; + // mov oT0.xyz, -r1 + o.texcoord = -temp1; + // add r0.zw, r0.xyxy, c14 + temp0.zw = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mov r1.x, c0.x + temp1.x = float1(0.01); + // mad oT1.zw, r0.xyyx, r1.x, -c15.x + o.texcoord1.zw = temp0.yx * temp1.xx + -expr15.xx; + // mul oT1.xy, r0.zwzw, c14 + o.texcoord1.xy = temp0.zw * Shroud.ScaleUV_OffsetUV.xy; + // mov oD0, c2 + o.color = float4(0.16, 0.47, 0.69, 0.6); + // + + return o; +} + +// Default_M_PixelShader5 Pixel_2_0 Has PRES False +struct Default_M_PixelShader5_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; +}; + +float4 Default_M_PixelShader5(Default_M_PixelShader5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 2, -1, 0.2, 0.5 + // def c1, 50, 0.15, -0.15, 0 + // def c2, 0.16, 0.57, 0.79, 0 + // dcl v0 + // dcl t0 + // dcl t1 + // dcl t2 + // dcl t3.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // texld r0, t0, s0 + temp0 = tex2D(StaticDisplacementTextureSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov r1.x, t0.z + temp1.x = i.texcoord.z; + // mov r1.y, t0.w + temp1.y = i.texcoord.w; + // texld r1, r1, s0 + temp1 = tex2D(StaticDisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c0.x, r0 + temp0.xyz = temp1.xyz * float3(2, 2, 2) + temp0.xyz; + // add r0.xyz, r0, c0.y + temp0.xyz = temp0.xyz + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(0.2, 0.2, 0.2); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r1.w, t1.w, c0.w + temp1.w = i.texcoord1.w * float1(0.5); + // mad r0.xyz, r1, c1.x, r1.w + temp0.xyz = temp1.xyz * float3(50, 50, 50) + temp1.www; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // dp3 r1.w, t1, r1 + temp1.w = dot(i.texcoord1.xyz, temp1.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r0.xyz, r1, -r1.w, t1 + temp0.xyz = temp1.xyz * -temp1.www + i.texcoord1.xyz; + // mad r2.x, r1.x, c1.y, t2.z + temp2.x = temp1.x * float1(0.15) + i.texcoord2.z; + // mad r2.y, r1.y, c1.y, t2.w + temp2.y = temp1.y * float1(0.15) + i.texcoord2.w; + // mov r0.xyz, -r0 + temp0.xyz = -temp0.xyz; + // mov r1.x, t2.z + temp1.x = i.texcoord2.z; + // mov r1.y, t2.w + temp1.y = i.texcoord2.w; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // texld r2, r2, s1 + temp2 = tex2D(WaterRefractionTextureSampler, temp2.xy); + // texld r1, r1, s1 + temp1 = tex2D(WaterRefractionTextureSampler, temp1.xy); + // texld r3, t3, s3 + temp3 = tex2D(ShroudSamplerSampler, i.texcoord3.xy); + // mul r0.xyz, r0, c5 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz; + // add r4.xyz, r2, -r1 + temp4.xyz = temp2.xyz + -temp1.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // add r0.w, r0.w, c1.z + temp0.w = temp0.w + float1(-0.15); + // cmp r1.xyz, r0.w, r1, r2 + temp1.xyz = (temp0.www >= 0) ? temp1.xyz : temp2.xyz; + // mad r0.xyz, r1, c2, r0 + temp0.xyz = temp1.xyz * float3(0.16, 0.57, 0.79) + temp0.xyz; + // mul r0.xyz, r3.x, r0 + temp0.xyz = temp3.xxx * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_M_VertexShader6 Vertex_2_0 Has PRES True +struct Default_M_VertexShader6_Output +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float4 texcoord2 : TEXCOORD2; + float4 color : COLOR; +}; + +Default_M_VertexShader6_Output Default_M_VertexShader6(float4 position : POSITION) +{ + /* + PRSI + OutputRegisterOffset: 23 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 23 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 25 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr23; + float4 expr24; + float4 expr25; + float4 expr26; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c1.x, c3.x + temp0.x = OctaveSpeed.x * Time.x; + // mul r1.x, r0.x, (0.015) + temp1.x = temp0.x * (0.015); + // mul r0.x, r1.x, c2.x + temp0.x = temp1.x * OctaveDivergenceSpeed.x; + // add c23.x, r1.x, r0.x + expr23.x = temp1.x + temp0.x; + // neg r1.y, r0.x + temp1.y = -temp0.x; + // add c25.x, r1.x, r1.y + expr25.x = temp1.x + temp1.y; + // mov c26.xyz, c0.xyz + expr26.xyz = MaterialColorDiffuse.xyz; + // mov c26.w, (1) + expr26.w = (1); + } + + Default_M_VertexShader6_Output o; + float4 temp0, temp1; + float addr0; + float3 temp2; + float2 temp3; + // def c0, 0.1591549, 0.5, 6.283185, -3.141593 + // def c1, 0.002047857, 0.001433974, -0.002047857, 4 + // def c2, 0.5, -0.5, 0, 0 + // def c3, 1, 0, 0.001433974, 0 + // def c4, 1, -1, 0, 0 + // def c5, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c6, -0.02083333, -0.125, 1, 0.5 + // defi i0, 3, 0, 0, 0 + // dcl_position v0 + // mad r0.xyz, v0.xyxw, c3.xxyw, c3.yyxw + temp0.xyz = position.xyx * float3(1, 1, 0) + float3(0, 0, 1); + // dp3 r0.w, r0, c29.xyww + temp0.w = dot(temp0.xyz, (World._m02_m12_m22_m32).xyw); + // dp3 r1.x, r0, c27.xyww + temp1.x = dot(temp0.xyz, (World._m00_m10_m20_m30).xyw); + // dp3 r1.y, r0, c28.xyww + temp1.y = dot(temp0.xyz, (World._m01_m11_m21_m31).xyw); + // mul r0.xyz, r1.y, c1 + temp0.xyz = temp1.yyy * float3(0.002047857, 0.001433974, -0.002047857); + // mad oT0.yw, r1.x, c1.xzzx, r0.y + o.texcoord.yw = temp1.xx * float2(-0.002047857, 0.002047857) + temp0.yy; + // mad r0.xy, r1.x, c3.z, r0.xzzw + temp0.xy = temp1.xx * float2(0.001433974, 0.001433974) + temp0.xz; + // add oT0.x, r0.x, c23.x + o.texcoord.x = temp0.x + expr23.x; + // add oT0.z, r0.y, c25.x + o.texcoord.z = temp0.y + expr25.x; + // mov r1.z, r0.w + temp1.z = temp0.w; + // mov r0.xy, c3.y + temp0.xy = float2(0, 0); + // rep i0 + for (int it0 = 0; it0 < int1(3); ++it0) { + // mul r0.z, r0.y, c1.w + temp0.z = temp0.y * float1(4); + // mova a0.x, r0.z + addr0.x = temp0.z; + // mov r2.x, c33.x + temp2.x = Time.x; + // mul r0.z, r2.x, c13[a0.x].x + temp0.z = temp2.x * wave[0 + (addr0.x / 4)].phase.x; + // mov r2.x, c12[a0.x].x + temp2.x = wave[0 + (addr0.x / 4)].amplitude.x; + // mul r2.x, r2.x, c31.x + temp2.x = temp2.x * WaveAmplitude.x; + // mul r2.yz, r1.xxyw, c14[a0.x].xxyw + temp2.yz = temp1.xy * wave[0 + (addr0.x / 4)].direction.xy; + // add r2.y, r2.z, r2.y + temp2.y = temp2.z + temp2.y; + // mul r2.y, r2.y, c11[a0.x].x + temp2.y = temp2.y * wave[0 + (addr0.x / 4)].frequency.x; + // mad r0.z, r2.y, c32.x, r0.z + temp0.z = temp2.y * WaveFrequency.x + temp0.z; + // mad r0.z, r0.z, c0.x, c0.y + temp0.z = temp0.z * float1(0.15915494) + float1(0.5); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // mad r0.z, r0.z, c0.z, c0.w + temp0.z = temp0.z * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r0.z, c5, c6 + temp3.xy = float2(cos(temp0.z), sin(temp0.z)); + // mad r0.x, r2.x, r3.x, r0.x + temp0.x = temp2.x * temp3.x + temp0.x; + // mul r0.z, r2.x, r3.y + temp0.z = temp2.x * temp3.y; + // max r0.z, r0.z, c3.y + temp0.z = max(temp0.z, float1(0)); + // add r1.z, r1.z, r0.z + temp1.z = temp1.z + temp0.z; + // add r0.y, r0.y, c3.x + temp0.y = temp0.y + float1(1); + // endrep + } + // mov oT1.w, r0.x + o.texcoord1.w = temp0.x; + // add r0.xyz, -r1, c123 + temp0.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul oT1.xyz, r0, r0.w + o.texcoord1.xyz = temp0.xyz * temp0.www; + // add r0.xy, r1, c30.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0, c30 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 r0.z, r1, c122 + temp0.z = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // mov oPos.xyw, r0.xyzz + o.position.xyw = temp0.xyz; + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // mul r0.xy, r0, r0.z + temp0.xy = temp0.xy * temp0.zz; + // mad oT2.zw, r0.xyxy, c2.xyxy, c2.x + o.texcoord2.zw = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // mov oD0, c26 + o.color = expr26; + // mad oT2.xy, v0, c4, c4.zxzw + o.texcoord2.xy = position.xy * float2(1, -1) + float2(0, 1); + // + + return o; +} + +// Default_Expression7 Expression_2_0 Has PRES False +float Default_Expression7() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_VertexShader8 Vertex_3_0 Has PRES True +struct Default_VertexShader8_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +Default_VertexShader8_Output Default_VertexShader8(float4 position : POSITION) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 2 + 0 - ConstOutput: 16 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul c11.x, c3.x, (0.005) + expr11.x = Foam1Scalar.x * (0.005); + // mul c12.x, c4.x, (0.004) + expr12.x = Foam2Scalar.x * (0.004); + // mul r0.x, c5.x, c8.x + temp0.x = FoamSpeed.x * Time.x; + // mul c13.x, r0.x, (0.011) + expr13.x = temp0.x * (0.011); + // mul r0.x, c6.x, c8.x + temp0.x = OctaveSpeed.x * Time.x; + // mul r1.x, r0.x, (0.015) + temp1.x = temp0.x * (0.015); + // mul r0.x, r1.x, c7.x + temp0.x = temp1.x * OctaveDivergenceSpeed.x; + // add c14.x, r1.x, r0.x + expr14.x = temp1.x + temp0.x; + // neg r1.y, r0.x + temp1.y = -temp0.x; + // add c16.x, r1.x, r1.y + expr16.x = temp1.x + temp1.y; + // add c17.x, c1.x, c2.x + expr17.x = FoamHeight.x + FoamBlend.x; + // rcp c18.x, c2.x + expr18.x = 1.0f / (FoamBlend.x); + // mov c19.xyz, c0.xyz + expr19.xyz = MaterialColorDiffuse.xyz; + // mov c19.w, (1) + expr19.w = (1); + } + + Default_VertexShader8_Output o; + float4 temp0, temp1, temp2; + // def c0, 0.002047857, 0.001433974, -0.002047857, 0.13 + // def c1, 300, -300, 0.5, -0.5 + // def c2, 0, -0.0015, 0, 0 + // def c3, 1, 0, 0.001433974, -1 + // dcl_position v0 + // dcl_2d s0 + // dcl_position o0 + // dcl_color o1 + // dcl_texcoord o2 + // dcl_texcoord1 o3 + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // mad r0.xyz, v0.xyxw, c3.xxyw, c3.yyxw + temp0.xyz = position.xyx * float3(1, 1, 0) + float3(0, 0, 1); + // dp3 r1.x, r0, c20.xyww + temp1.x = dot(temp0.xyz, (World._m00_m10_m20_m30).xyw); + // mov r2.x, c11.x + temp2.x = expr11.x; + // mad o2.x, r1.x, r2.x, c13.x + o.texcoord.x = temp1.x * temp2.x + expr13.x; + // mov r2.x, c12.x + temp2.x = expr12.x; + // mad o2.z, r1.x, r2.x, -c13.x + o.texcoord.z = temp1.x * temp2.x + -expr13.x; + // dp3 r1.y, r0, c21.xyww + temp1.y = dot(temp0.xyz, (World._m01_m11_m21_m31).xyw); + // dp3 r1.z, r0, c22.xyww + temp1.z = dot(temp0.xyz, (World._m02_m12_m22_m32).xyw); + // mul r0, r1.y, c0.xyzy + temp0 = temp1.y * float4(0.002047857, 0.001433974, -0.002047857, 0.001433974); + // mad r0.xz, r1.x, c3.z, r0 + temp0.xz = temp1.xx * float2(0.001433974, 0.001433974) + temp0.xz; + // mad o3.yw, r1.x, c0.xzzx, r0 + o.texcoord1.yw = temp1.xx * float2(-0.002047857, 0.002047857) + temp0.yw; + // add o3.x, r0.x, c14.x + o.texcoord1.x = temp0.x + expr14.x; + // add o3.z, r0.z, c16.x + o.texcoord1.z = temp0.z + expr16.x; + // mad r0, v0.xyxx, c3.xwyy, c3.yxyy + temp0 = position.xyxx * float4(1, -1, 0, 0) + float4(0, 1, 0, 0); + // texldl r0, r0, s0 + temp0 = tex2Dlod(DisplacementTextureSampler, temp0); + // min r0.xyz, r0, c0.w + temp0.xyz = min(temp0.xyz, float3(0.13, 0.13, 0.13)); + // mul r0.w, r0.z, c1.x + temp0.w = temp0.z * float1(300); + // slt r0.w, c17.x, r0.w + temp0.w = (expr17.x < temp0.w) ? 1 : 0; + // mov r2.x, c1.x + temp2.x = float1(300); + // mad r1.w, r0.z, r2.x, -c17.x + temp1.w = temp0.z * temp2.x + -expr17.x; + // mad r2.xyz, r0, c1.yxxw, r1 + temp2.xyz = temp0.xyz * float3(-300, 300, 300) + temp1.xyz; + // mul r0.x, r1.w, c18.x + temp0.x = temp1.w * expr18.x; + // mul o5.w, r0.w, r0.x + o.texcoord3.w = temp0.w * temp0.x; + // mov r2.w, c3.x + temp2.w = float1(1); + // dp4 o0.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 r0.z, r2, c122 + temp0.z = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // rcp r0.w, r0.z + temp0.w = 1.0f / temp0.z; + // dp4 r0.x, r2, c119 + temp0.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r2, c120 + temp0.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // mul r1.xz, r0.w, r0.xyyw + temp1.xz = temp0.ww * temp0.xy; + // mov o0.xyw, r0.xyzz + o.position.xyw = temp0.xyz; + // mad o6.zw, r1.xyxz, c1, c1.z + o.texcoord4.zw = temp1.xz * float2(0.5, -0.5) + float2(0.5, 0.5); + // add r0.xy, r2, c23.zwzw + temp0.xy = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r0, c23 + o.texcoord5 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov o1, c19 + o.color = expr19; + // mul r0.x, r1.y, c11.x + temp0.x = temp1.y * expr11.x; + // mul r0.y, r1.y, c12.x + temp0.y = temp1.y * expr12.x; + // mov o2.yw, r0.xxzy + o.texcoord.yw = temp0.xy; + // dp4 r0.x, r2, c113 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r2, c114 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r2, c115 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r2, c116 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov o5.xyz, r2 + o.texcoord3.xyz = temp2.xyz; + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov o4.w, r0.w + o.texcoord2.w = temp0.w; + // mad o4.xyz, r0, r1.x, c2.xxyw + o.texcoord2.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mad o6.xy, v0, c3.xwzw, c3.yxzw + o.texcoord4.xy = position.xy * float2(1, -1) + float2(0, 1); + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_3_0 Default_VertexShader8(); // 87 + PixelShader = PS_WaterShadowMap_Array[Default_Expression7()]; // 88 + AlphaBlendEnable = 0; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaTestEnable = 0; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader6(); // 89 + PixelShader = compile ps_2_0 Default_M_PixelShader5(); // 90 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + +technique Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_L_VertexShader4(); // 91 + PixelShader = compile ps_2_0 Default_L_PixelShader3(); // 92 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + } +} + diff --git a/oceandisplacement.fx b/oceandisplacement.fx new file mode 100644 index 0000000..76503d3 --- /dev/null +++ b/oceandisplacement.fx @@ -0,0 +1,983 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +texture DisplacementTexture ; // 2 +sampler2D DisplacementTextureSampler = +sampler_state +{ + Texture = ; // 4 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float DisplacementTextureSize ; +texture StaticDisplacementTexture ; // 8 +sampler2D StaticDisplacementTextureSampler = +sampler_state +{ + Texture = ; // 10 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +row_major float4x4 ViewI : ViewInverse; +row_major float4x4 ProjectionI : ProjectionInverse; +float Time : Time : register(vs_2_0, c11); +// DebugDisplayDisplacement_PixelShader1 Pixel_3_0 Has PRES False +float4 DebugDisplayDisplacement_PixelShader1(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 0.5, 1, 0, 0 + // dcl_texcoord v0.xy + // dcl_2d s0 + // texld r0, v0, s0 + temp0 = tex2D(DisplacementTextureSampler, texcoord.xy); + // mad oC0.xyz, r0, c0.x, c0.x + out_color.xyz = temp0.xyz * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5); + // mov oC0.w, c0.y + out_color.w = float1(1); + // + + return out_color; +} + +// DebugDisplayDisplacement_VertexShader2 Vertex_3_0 Has PRES False +struct DebugDisplayDisplacement_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct DebugDisplayDisplacement_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +DebugDisplayDisplacement_VertexShader2_Output DebugDisplayDisplacement_VertexShader2(DebugDisplayDisplacement_VertexShader2_Input i) +{ + DebugDisplayDisplacement_VertexShader2_Output o; + // def c0, 0.5, 0.6666667, 0, 1 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // mul o0.xyz, c0, v0 + o.position.xyz = float3(0.5, 0.6666667, 0) * i.position.xyz; + // mov o0.w, c0.w + o.position.w = float1(1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// StaticDisplacement_PixelShader3 Pixel_3_0 Has PRES True +float4 StaticDisplacement_PixelShader3(float2 texcoord1 : TEXCOORD1) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // mul c11.x, c0.x, (45) + expr11.x = Time.x * (45); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.0005, 2, -1, 0.06 + // def c1, -0.9659202, 0.2588402, 0, 0.9659202 + // dcl_texcoord1 v0.xy + // dcl_2d s0 + // add r0.xy, v0, v0 + temp0.xy = texcoord1.xy + texcoord1.xy; + // dp2add r0.w, r0, c1, c1.z + temp0.w = dot(temp0.xy, float2(-0.96592015, 0.25884023)) + float1(0); + // mov r1.xyw, c1 + temp1.xyw = float3(-0.96592015, 0.25884023, 0.96592015); + // dp2add r0.z, r0, r1.ywzw, c11.x + temp0.z = dot(temp0.xy, temp1.yw) + expr11.x; + // mul r0.zw, r0, c0.x + temp0.zw = temp0.zw * float2(0.0005, 0.0005); + // texld r2, r0.zwzw, s0 + temp2 = tex2D(StaticDisplacementTextureSampler, temp0.zw); + // mad r0.z, r2.w, c0.y, c0.z + temp0.z = temp2.w * float1(2) + float1(-1); + // dp2add r1.w, r0, c1.wyzw, c1.z + temp1.w = dot(temp0.xy, float2(0.96592015, 0.25884023)) + float1(0); + // dp2add r1.z, r0, r1.yxzw, c11.x + temp1.z = dot(temp0.xy, temp1.yx) + expr11.x; + // mul r0.xy, r1.zwzw, c0.x + temp0.xy = temp1.zw * float2(0.0005, 0.0005); + // texld r1, r0, s0 + temp1 = tex2D(StaticDisplacementTextureSampler, temp0.xy); + // mad r0.x, r1.w, c0.y, r0.z + temp0.x = temp1.w * float1(2) + temp0.z; + // add r0.x, r0.x, c0.z + temp0.x = temp0.x + float1(-1); + // mul oC0.xyz, r0.x, c0.w + out_color.xyz = temp0.xxx * float3(0.06, 0.06, 0.06); + // mov oC0.w, c1.z + out_color.w = float1(0); + // + + return out_color; +} + +// StaticDisplacement_VertexShader4 Vertex_3_0 Has PRES True +struct StaticDisplacement_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct StaticDisplacement_VertexShader4_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +StaticDisplacement_VertexShader4_Output StaticDisplacement_VertexShader4(StaticDisplacement_VertexShader4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + float4 temp0; + float4 temp1; + float4 temp2; + // Expression_2_1 + // mul r0.x, c4.x, c0.x + temp0.x = (ViewI._m00_m10_m20_m30).x * (ProjectionI._m00_m10_m20_m30).x; + // mul r0.y, c4.x, c0.y + temp0.y = (ViewI._m00_m10_m20_m30).x * (ProjectionI._m00_m10_m20_m30).y; + // mul r0.z, c4.x, c0.w + temp0.z = (ViewI._m00_m10_m20_m30).x * (ProjectionI._m00_m10_m20_m30).w; + // mul r1.x, c4.y, c1.x + temp1.x = (ViewI._m00_m10_m20_m30).y * (ProjectionI._m01_m11_m21_m31).x; + // mul r1.y, c4.y, c1.y + temp1.y = (ViewI._m00_m10_m20_m30).y * (ProjectionI._m01_m11_m21_m31).y; + // mul r1.z, c4.y, c1.w + temp1.z = (ViewI._m00_m10_m20_m30).y * (ProjectionI._m01_m11_m21_m31).w; + // add r2.xyz, r0.xyz, r1.xyz + temp2.xyz = temp0.xyz + temp1.xyz; + // mul r0.x, c4.z, c2.x + temp0.x = (ViewI._m00_m10_m20_m30).z * (ProjectionI._m02_m12_m22_m32).x; + // mul r0.y, c4.z, c2.y + temp0.y = (ViewI._m00_m10_m20_m30).z * (ProjectionI._m02_m12_m22_m32).y; + // mul r0.z, c4.z, c2.w + temp0.z = (ViewI._m00_m10_m20_m30).z * (ProjectionI._m02_m12_m22_m32).w; + // add r1.xyz, r2.xyz, r0.xyz + temp1.xyz = temp2.xyz + temp0.xyz; + // mul r0.x, c4.w, c3.x + temp0.x = (ViewI._m00_m10_m20_m30).w * (ProjectionI._m03_m13_m23_m33).x; + // mul r0.y, c4.w, c3.y + temp0.y = (ViewI._m00_m10_m20_m30).w * (ProjectionI._m03_m13_m23_m33).y; + // mul r0.z, c4.w, c3.w + temp0.z = (ViewI._m00_m10_m20_m30).w * (ProjectionI._m03_m13_m23_m33).w; + // add c11.xyz, r1.xyz, r0.xyz + expr11.xyz = temp1.xyz + temp0.xyz; + // mul r0.x, c5.x, c0.x + temp0.x = (ViewI._m01_m11_m21_m31).x * (ProjectionI._m00_m10_m20_m30).x; + // mul r0.y, c5.x, c0.y + temp0.y = (ViewI._m01_m11_m21_m31).x * (ProjectionI._m00_m10_m20_m30).y; + // mul r0.z, c5.x, c0.w + temp0.z = (ViewI._m01_m11_m21_m31).x * (ProjectionI._m00_m10_m20_m30).w; + // mul r1.x, c5.y, c1.x + temp1.x = (ViewI._m01_m11_m21_m31).y * (ProjectionI._m01_m11_m21_m31).x; + // mul r1.y, c5.y, c1.y + temp1.y = (ViewI._m01_m11_m21_m31).y * (ProjectionI._m01_m11_m21_m31).y; + // mul r1.z, c5.y, c1.w + temp1.z = (ViewI._m01_m11_m21_m31).y * (ProjectionI._m01_m11_m21_m31).w; + // add r2.xyz, r0.xyz, r1.xyz + temp2.xyz = temp0.xyz + temp1.xyz; + // mul r0.x, c5.z, c2.x + temp0.x = (ViewI._m01_m11_m21_m31).z * (ProjectionI._m02_m12_m22_m32).x; + // mul r0.y, c5.z, c2.y + temp0.y = (ViewI._m01_m11_m21_m31).z * (ProjectionI._m02_m12_m22_m32).y; + // mul r0.z, c5.z, c2.w + temp0.z = (ViewI._m01_m11_m21_m31).z * (ProjectionI._m02_m12_m22_m32).w; + // add r1.xyz, r2.xyz, r0.xyz + temp1.xyz = temp2.xyz + temp0.xyz; + // mul r0.x, c5.w, c3.x + temp0.x = (ViewI._m01_m11_m21_m31).w * (ProjectionI._m03_m13_m23_m33).x; + // mul r0.y, c5.w, c3.y + temp0.y = (ViewI._m01_m11_m21_m31).w * (ProjectionI._m03_m13_m23_m33).y; + // mul r0.z, c5.w, c3.w + temp0.z = (ViewI._m01_m11_m21_m31).w * (ProjectionI._m03_m13_m23_m33).w; + // add c12.xyz, r1.xyz, r0.xyz + expr12.xyz = temp1.xyz + temp0.xyz; + } + + StaticDisplacement_VertexShader4_Output o; + float3 temp0; + // def c0, 1, -1, 0, 2 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_texcoord1 o2.xy + // mad r0.xy, v1, c0, c0.zxzw + temp0.xy = i.texcoord.xy * float2(1, -1) + float2(0, 1); + // mad r0.xy, r0, c0.w, c0.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // mov r0.z, c0.x + temp0.z = float1(1); + // dp3 o2.x, r0, c11 + o.texcoord1.x = dot(temp0.xyz, expr11.xyz); + // dp3 o2.y, r0, c12 + o.texcoord1.y = dot(temp0.xyz, expr12.xyz); + // mov o0.xyz, v0 + o.position.xyz = i.position.xyz; + // mov o0.w, c0.x + o.position.w = float1(1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// BlurV_PixelShader5 Pixel_3_0 Has PRES True +float4 BlurV_PixelShader5(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 18 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 18 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + float4 expr26; + float4 expr27; + float4 expr28; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (DisplacementTextureSize.x); + // mul c11.xy, r0.x, (-0, -9) + expr11.xy = temp0.x * float2(-0, -9); + // mul c12.x, r0.x, (-0) + expr12.x = temp0.x * (-0); + // mul c12.y, r0.x, (-8) + expr12.y = temp0.x * (-8); + // mul c13.x, r0.x, (-0) + expr13.x = temp0.x * (-0); + // mul c13.y, r0.x, (-7) + expr13.y = temp0.x * (-7); + // mul c14.xy, r0.x, (-0, -6) + expr14.xy = temp0.x * float2(-0, -6); + // mul c15.x, r0.x, (-0) + expr15.x = temp0.x * (-0); + // mul c15.y, r0.x, (-5) + expr15.y = temp0.x * (-5); + // mul c16.x, r0.x, (-0) + expr16.x = temp0.x * (-0); + // mul c16.y, r0.x, (-4) + expr16.y = temp0.x * (-4); + // mul c17.xy, r0.x, (-0, -3) + expr17.xy = temp0.x * float2(-0, -3); + // mul c18.x, r0.x, (-0) + expr18.x = temp0.x * (-0); + // mul c18.y, r0.x, (-2) + expr18.y = temp0.x * (-2); + // mul c19.x, r0.x, (-0) + expr19.x = temp0.x * (-0); + // mul c19.y, r0.x, (-1) + expr19.y = temp0.x * (-1); + // mul c20.xy, r0.x, (0, 1) + expr20.xy = temp0.x * float2(0, 1); + // mul c21.x, r0.x, (0) + expr21.x = temp0.x * (0); + // mul c21.y, r0.x, (2) + expr21.y = temp0.x * (2); + // mul c22.x, r0.x, (0) + expr22.x = temp0.x * (0); + // mul c22.y, r0.x, (3) + expr22.y = temp0.x * (3); + // mul c23.xy, r0.x, (0, 4) + expr23.xy = temp0.x * float2(0, 4); + // mul c24.x, r0.x, (0) + expr24.x = temp0.x * (0); + // mul c24.y, r0.x, (5) + expr24.y = temp0.x * (5); + // mul c25.x, r0.x, (0) + expr25.x = temp0.x * (0); + // mul c25.y, r0.x, (6) + expr25.y = temp0.x * (6); + // mul c26.xy, r0.x, (0, 7) + expr26.xy = temp0.x * float2(0, 7); + // mul c27.x, r0.x, (0) + expr27.x = temp0.x * (0); + // mul c27.y, r0.x, (8) + expr27.y = temp0.x * (8); + // mul c28.x, r0.x, (0) + expr28.x = temp0.x * (0); + // mul c28.y, r0.x, (9) + expr28.y = temp0.x * (9); + } + + float4 out_color; + float4 temp0, temp1; + // def c0, 0.09549151, 0.561285, 0.02447174, 0.07562184 + // def c1, 0.2061074, 1.667444, 0.3454915, 3.285819 + // def c2, 0.5, -5, 0.3454915, -3.285819 + // def c3, 0.5, 5, 0.6545085, 6.224745 + // def c4, 0.9755282, 3.014548, 1, -0 + // def c5, 0.7938926, 6.422726, 0.9045085, 5.316567 + // def c6, 0.9755282, -3.014548, 0.9045085, -5.316567 + // def c7, 0.7938926, -6.422726, 0.6545085, -6.224745 + // def c8, 0.2061074, -1.667444, 0.09549151, -0.561285 + // def c9, 0.02447174, -0.07562184, 0.02380952, 0.04761905 + // dcl_texcoord v0.xy + // dcl_2d s0 + // add r0.xy, c12, v0 + temp0.xy = expr12.xy + texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(DisplacementTextureSampler, temp0.xy); + // mul r0.xyz, r0, c0.xyxw + temp0.xyz = temp0.xyz * float3(0.095491506, 0.56128496, 0.095491506); + // add r1.xy, c11, v0 + temp1.xy = expr11.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c0.zwzw, r0 + temp0.xyz = temp1.xyz * float3(0.024471743, 0.07562184, 0.024471743) + temp0.xyz; + // add r1.xy, c13, v0 + temp1.xy = expr13.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c1.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.20610738, 1.6674438, 0.20610738) + temp0.xyz; + // add r1.xy, c14, v0 + temp1.xy = expr14.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c1.zwzw, r0 + temp0.xyz = temp1.xyz * float3(0.3454915, 3.2858193, 0.3454915) + temp0.xyz; + // add r1.xy, c15, v0 + temp1.xy = expr15.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c3.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.5, 5, 0.5) + temp0.xyz; + // add r1.xy, c16, v0 + temp1.xy = expr16.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c3.zwzw, r0 + temp0.xyz = temp1.xyz * float3(0.6545085, 6.2247453, 0.6545085) + temp0.xyz; + // add r1.xy, c17, v0 + temp1.xy = expr17.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c5.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.7938926, 6.422726, 0.7938926) + temp0.xyz; + // add r1.xy, c18, v0 + temp1.xy = expr18.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c5.zwzw, r0 + temp0.xyz = temp1.xyz * float3(0.9045085, 5.3165674, 0.9045085) + temp0.xyz; + // add r1.xy, c19, v0 + temp1.xy = expr19.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c4.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.97552824, 3.014548, 0.97552824) + temp0.xyz; + // texld r1, v0, s0 + temp1 = tex2D(DisplacementTextureSampler, texcoord.xy); + // mad r0.xyz, r1, c4.zwzw, r0 + temp0.xyz = temp1.xyz * float3(1, -0, 1) + temp0.xyz; + // add r1.xy, c20, v0 + temp1.xy = expr20.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c6.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.97552824, -3.014548, 0.97552824) + temp0.xyz; + // add r1.xy, c21, v0 + temp1.xy = expr21.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c6.zwzw, r0 + temp0.xyz = temp1.xyz * float3(0.9045085, -5.3165674, 0.9045085) + temp0.xyz; + // add r1.xy, c22, v0 + temp1.xy = expr22.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c7.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.7938926, -6.422726, 0.7938926) + temp0.xyz; + // add r1.xy, c23, v0 + temp1.xy = expr23.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c7.zwzw, r0 + temp0.xyz = temp1.xyz * float3(0.6545085, -6.2247453, 0.6545085) + temp0.xyz; + // add r1.xy, c24, v0 + temp1.xy = expr24.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c2.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.5, -5, 0.5) + temp0.xyz; + // add r1.xy, c25, v0 + temp1.xy = expr25.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c2.zwzw, r0 + temp0.xyz = temp1.xyz * float3(0.3454915, -3.2858193, 0.3454915) + temp0.xyz; + // add r1.xy, c26, v0 + temp1.xy = expr26.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c8.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.20610738, -1.6674438, 0.20610738) + temp0.xyz; + // add r1.xy, c27, v0 + temp1.xy = expr27.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c8.zwzw, r0 + temp0.xyz = temp1.xyz * float3(0.095491506, -0.56128496, 0.095491506) + temp0.xyz; + // add r1.xy, c28, v0 + temp1.xy = expr28.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c9.xyxw, r0 + temp0.xyz = temp1.xyz * float3(0.024471743, -0.07562184, 0.024471743) + temp0.xyz; + // mul oC0.xyz, r0, c9.zzww + out_color.xyz = temp0.xyz * float3(0.023809524, 0.023809524, 0.04761905); + // mov oC0.w, -c4.w + out_color.w = float1(0); + // + + return out_color; +} + +// BlurV_VertexShader6 Vertex_3_0 Has PRES False +struct BlurV_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct BlurV_VertexShader6_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +BlurV_VertexShader6_Output BlurV_VertexShader6(BlurV_VertexShader6_Input i) +{ + BlurV_VertexShader6_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // mov o0.xyz, v0 + o.position.xyz = i.position.xyz; + // mov o0.w, c0.x + o.position.w = float1(1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// BlurU_PixelShader7 Pixel_3_0 Has PRES True +float4 BlurU_PixelShader7(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 18 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 18 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + float4 expr26; + float4 expr27; + float4 expr28; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (DisplacementTextureSize.x); + // mul c11.xy, r0.x, (-9, -0) + expr11.xy = temp0.x * float2(-9, -0); + // mul c12.x, r0.x, (-8) + expr12.x = temp0.x * (-8); + // mul c12.y, r0.x, (-0) + expr12.y = temp0.x * (-0); + // mul c13.x, r0.x, (-7) + expr13.x = temp0.x * (-7); + // mul c13.y, r0.x, (-0) + expr13.y = temp0.x * (-0); + // mul c14.xy, r0.x, (-6, -0) + expr14.xy = temp0.x * float2(-6, -0); + // mul c15.x, r0.x, (-5) + expr15.x = temp0.x * (-5); + // mul c15.y, r0.x, (-0) + expr15.y = temp0.x * (-0); + // mul c16.x, r0.x, (-4) + expr16.x = temp0.x * (-4); + // mul c16.y, r0.x, (-0) + expr16.y = temp0.x * (-0); + // mul c17.xy, r0.x, (-3, -0) + expr17.xy = temp0.x * float2(-3, -0); + // mul c18.x, r0.x, (-2) + expr18.x = temp0.x * (-2); + // mul c18.y, r0.x, (-0) + expr18.y = temp0.x * (-0); + // mul c19.x, r0.x, (-1) + expr19.x = temp0.x * (-1); + // mul c19.y, r0.x, (-0) + expr19.y = temp0.x * (-0); + // mul c20.xy, r0.x, (1, 0) + expr20.xy = temp0.x * float2(1, 0); + // mul c21.x, r0.x, (2) + expr21.x = temp0.x * (2); + // mul c21.y, r0.x, (0) + expr21.y = temp0.x * (0); + // mul c22.x, r0.x, (3) + expr22.x = temp0.x * (3); + // mul c22.y, r0.x, (0) + expr22.y = temp0.x * (0); + // mul c23.xy, r0.x, (4, 0) + expr23.xy = temp0.x * float2(4, 0); + // mul c24.x, r0.x, (5) + expr24.x = temp0.x * (5); + // mul c24.y, r0.x, (0) + expr24.y = temp0.x * (0); + // mul c25.x, r0.x, (6) + expr25.x = temp0.x * (6); + // mul c25.y, r0.x, (0) + expr25.y = temp0.x * (0); + // mul c26.xy, r0.x, (7, 0) + expr26.xy = temp0.x * float2(7, 0); + // mul c27.x, r0.x, (8) + expr27.x = temp0.x * (8); + // mul c27.y, r0.x, (0) + expr27.y = temp0.x * (0); + // mul c28.x, r0.x, (9) + expr28.x = temp0.x * (9); + // mul c28.y, r0.x, (0) + expr28.y = temp0.x * (0); + } + + float4 out_color; + float4 temp0, temp1; + // def c0, 0.561285, 0.09549151, 0.07562184, 0.02447174 + // def c1, 3.014548, 0.9755282, -0, 1 + // def c2, 1.667444, 0.2061074, 3.285819, 0.3454915 + // def c3, 5, 0.5, 6.224745, 0.6545085 + // def c4, 6.422726, 0.7938926, 5.316567, 0.9045085 + // def c5, -3.014548, 0.9755282, -5.316567, 0.9045085 + // def c6, -6.422726, 0.7938926, -6.224745, 0.6545085 + // def c7, -5, 0.5, -3.285819, 0.3454915 + // def c8, -1.667444, 0.2061074, -0.561285, 0.09549151 + // def c9, -0.07562184, 0.02447174, 0.02380952, 0.04761905 + // dcl_texcoord v0.xy + // dcl_2d s0 + // add r0.xy, c12, v0 + temp0.xy = expr12.xy + texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(DisplacementTextureSampler, temp0.xy); + // mul r0.xyz, r0, c0.xyyw + temp0.xyz = temp0.xyz * float3(0.56128496, 0.095491506, 0.095491506); + // add r1.xy, c11, v0 + temp1.xy = expr11.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c0.zwww, r0 + temp0.xyz = temp1.xyz * float3(0.07562184, 0.024471743, 0.024471743) + temp0.xyz; + // add r1.xy, c13, v0 + temp1.xy = expr13.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c2.xyyw, r0 + temp0.xyz = temp1.xyz * float3(1.6674438, 0.20610738, 0.20610738) + temp0.xyz; + // add r1.xy, c14, v0 + temp1.xy = expr14.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c2.zwww, r0 + temp0.xyz = temp1.xyz * float3(3.2858193, 0.3454915, 0.3454915) + temp0.xyz; + // add r1.xy, c15, v0 + temp1.xy = expr15.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c3.xyyw, r0 + temp0.xyz = temp1.xyz * float3(5, 0.5, 0.5) + temp0.xyz; + // add r1.xy, c16, v0 + temp1.xy = expr16.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c3.zwww, r0 + temp0.xyz = temp1.xyz * float3(6.2247453, 0.6545085, 0.6545085) + temp0.xyz; + // add r1.xy, c17, v0 + temp1.xy = expr17.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c4.xyyw, r0 + temp0.xyz = temp1.xyz * float3(6.422726, 0.7938926, 0.7938926) + temp0.xyz; + // add r1.xy, c18, v0 + temp1.xy = expr18.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c4.zwww, r0 + temp0.xyz = temp1.xyz * float3(5.3165674, 0.9045085, 0.9045085) + temp0.xyz; + // add r1.xy, c19, v0 + temp1.xy = expr19.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c1.xyyw, r0 + temp0.xyz = temp1.xyz * float3(3.014548, 0.97552824, 0.97552824) + temp0.xyz; + // texld r1, v0, s0 + temp1 = tex2D(DisplacementTextureSampler, texcoord.xy); + // mad r0.xyz, r1, c1.zwww, r0 + temp0.xyz = temp1.xyz * float3(-0, 1, 1) + temp0.xyz; + // add r1.xy, c20, v0 + temp1.xy = expr20.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c5.xyyw, r0 + temp0.xyz = temp1.xyz * float3(-3.014548, 0.97552824, 0.97552824) + temp0.xyz; + // add r1.xy, c21, v0 + temp1.xy = expr21.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c5.zwww, r0 + temp0.xyz = temp1.xyz * float3(-5.3165674, 0.9045085, 0.9045085) + temp0.xyz; + // add r1.xy, c22, v0 + temp1.xy = expr22.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c6.xyyw, r0 + temp0.xyz = temp1.xyz * float3(-6.422726, 0.7938926, 0.7938926) + temp0.xyz; + // add r1.xy, c23, v0 + temp1.xy = expr23.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c6.zwww, r0 + temp0.xyz = temp1.xyz * float3(-6.2247453, 0.6545085, 0.6545085) + temp0.xyz; + // add r1.xy, c24, v0 + temp1.xy = expr24.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c7.xyyw, r0 + temp0.xyz = temp1.xyz * float3(-5, 0.5, 0.5) + temp0.xyz; + // add r1.xy, c25, v0 + temp1.xy = expr25.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c7.zwww, r0 + temp0.xyz = temp1.xyz * float3(-3.2858193, 0.3454915, 0.3454915) + temp0.xyz; + // add r1.xy, c26, v0 + temp1.xy = expr26.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c8.xyyw, r0 + temp0.xyz = temp1.xyz * float3(-1.6674438, 0.20610738, 0.20610738) + temp0.xyz; + // add r1.xy, c27, v0 + temp1.xy = expr27.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c8.zwww, r0 + temp0.xyz = temp1.xyz * float3(-0.56128496, 0.095491506, 0.095491506) + temp0.xyz; + // add r1.xy, c28, v0 + temp1.xy = expr28.xy + texcoord.xy; + // texld r1, r1, s0 + temp1 = tex2D(DisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c9.xyyw, r0 + temp0.xyz = temp1.xyz * float3(-0.07562184, 0.024471743, 0.024471743) + temp0.xyz; + // mul oC0.xyz, r0, c9.zzww + out_color.xyz = temp0.xyz * float3(0.023809524, 0.023809524, 0.04761905); + // mov oC0.w, -c1.z + out_color.w = float1(0); + // + + return out_color; +} + +// BlurU_VertexShader8 Vertex_3_0 Has PRES False +struct BlurU_VertexShader8_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct BlurU_VertexShader8_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +BlurU_VertexShader8_Output BlurU_VertexShader8(BlurU_VertexShader8_Input i) +{ + BlurU_VertexShader8_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // mov o0.xyz, v0 + o.position.xyz = i.position.xyz; + // mov o0.w, c0.x + o.position.w = float1(1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// RenderWaveParticles_PixelShader9 Pixel_2_0 Has PRES False +float4 RenderWaveParticles_PixelShader9(float texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 0, 0, 0, 0 + // dcl t0.x + // mov r0.xyz, t0.x + temp0.xyz = texcoord.x; + // mov r0.w, c0.x + temp0.w = float1(0); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// RenderWaveParticles_VertexShader10 Vertex_2_0 Has PRES False +struct RenderWaveParticles_VertexShader10_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct RenderWaveParticles_VertexShader10_Output +{ + float4 position : POSITION; + float texcoord : TEXCOORD; +}; + +RenderWaveParticles_VertexShader10_Output RenderWaveParticles_VertexShader10(RenderWaveParticles_VertexShader10_Input i) +{ + RenderWaveParticles_VertexShader10_Output o; + float4 temp0; + float2 temp1; + // def c0, 0, -0.3606738, 0.5, 1 + // dcl_position v0 + // dcl_texcoord v1 + // add r0.x, -v1.y, c11.x + temp0.x = -i.texcoord.y + Time.x; + // mad r0.yz, r0.x, v0.xzww, v0.xxyw + temp0.yz = temp0.xx * i.position.zw + i.position.xy; + // mul r1.xy, r0.x, c0.yzzw + temp1.xy = temp0.xx * float2(-0.36067376, 0.5); + // mov r0.w, c0.w + temp0.w = float1(1); + // dp3 oPos.x, r0.yzww, c119.xyww + o.position.x = dot(temp0.yzw, (ViewProjection._m00_m10_m20_m30).xyw); + // dp3 oPos.y, r0.yzww, c120.xyww + o.position.y = dot(temp0.yzw, (ViewProjection._m01_m11_m21_m31).xyw); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // max r0.y, r1.y, c0.x + temp0.y = max(temp1.y, float1(0)); + // abs r0.z, v1.x + temp0.z = abs(i.texcoord.x); + // mul r0.x, r0.x, r0.z + temp0.x = temp0.x * temp0.z; + // min r0.y, r0.y, c0.w + temp0.y = min(temp0.y, float1(1)); + // mad r0.x, r0.x, r0.y, -v1.x + temp0.x = temp0.x * temp0.y + -i.texcoord.x; + // slt r0.y, v1.x, c0.x + temp0.y = (i.texcoord.x < float1(0)) ? 1 : 0; + // mad r0.x, r0.y, r0.x, v1.x + temp0.x = temp0.y * temp0.x + i.texcoord.x; + // min oT0.x, r0.x, c0.w + o.texcoord = min(temp0.x, float4(1, 1, 1, 1)); + // mov oPos.zw, c0.xyxw + o.position.zw = float2(0, 1); + // + + return o; +} + +technique RenderWaveParticles +{ + pass P0 + { + VertexShader = compile vs_2_0 RenderWaveParticles_VertexShader10(); // 13 + PixelShader = compile ps_2_0 RenderWaveParticles_PixelShader9(); // 14 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + } +} + +technique BlurU +{ + pass p0 + { + VertexShader = compile vs_3_0 BlurU_VertexShader8(); // 15 + PixelShader = compile ps_3_0 BlurU_PixelShader7(); // 16 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique BlurV +{ + pass p0 + { + VertexShader = compile vs_3_0 BlurV_VertexShader6(); // 17 + PixelShader = compile ps_3_0 BlurV_PixelShader5(); // 18 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique StaticDisplacement +{ + pass p0 + { + VertexShader = compile vs_3_0 StaticDisplacement_VertexShader4(); // 19 + PixelShader = compile ps_3_0 StaticDisplacement_PixelShader3(); // 20 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + } +} + +technique DebugDisplayDisplacement +{ + pass P0 + { + VertexShader = compile vs_3_0 DebugDisplayDisplacement_VertexShader2(); // 21 + PixelShader = compile ps_3_0 DebugDisplayDisplacement_PixelShader1(); // 22 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + SrcBlend = 2; + DestBlend = 2; + } +} + diff --git a/oceannovertextexture.fx b/oceannovertextexture.fx new file mode 100644 index 0000000..ca39319 --- /dev/null +++ b/oceannovertextexture.fx @@ -0,0 +1,1252 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(ps_3_0, c5) : register(ps_2_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_3_0, c113) ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(ps_3_0, c123) : register(vs_2_0, c123) ; +column_major float4x4 ViewProjection : register(ps_3_0, c119) : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] ; +bool HasShadow ; +texture ShadowMap ; // 4 +sampler2D ShadowMapSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 7 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_3_0, c11) ; +texture StaticDisplacementTexture ; // 13 +sampler2D StaticDisplacementTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 15 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture WaterReflectionTexture ; // 18 +sampler2D WaterReflectionTextureSampler = +sampler_state +{ + Texture = ; // 21 + MipFilter = 1; + MinFilter = 2; + MagFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture WaterRefractionTexture ; // 25 +sampler2D WaterRefractionTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 28 + MipFilter = 1; + MinFilter = 2; + MagFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture EnvironmentTexture ; // 32 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 36 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_3_0, c35) = { 1, 1, 0, 0 }; +texture ShroudSampler ; // 43 +sampler2D ShroudSamplerSampler = +sampler_state +{ + Texture = ; // 46 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float4 MaterialColorDiffuse = { 1, 1, 1, 0 }; +texture Foam ; // 52 +sampler2D FoamSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float FoamHeight ; +float FoamBlend = { 1 }; +float Foam1Scalar = { 1 }; +float Foam2Scalar = { 1 }; +float FoamSpeed = { 1 }; +float OctaveScalar = { 1 }; +float OctaveDivergenceAngle ; +float OctaveSpeed = { 1 }; +float OctaveDivergenceSpeed ; +float WaveAmplitude : register(vs_2_0, c31) : register(vs_3_0, c36) = { 3 }; +float WaveFrequency : register(vs_2_0, c32) : register(vs_3_0, c37) = { 0.2 }; +texture DisplacementTexture ; // 79 +sampler2D DisplacementTextureSampler = +sampler_state +{ + Texture = ; // 81 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float DisplacementTextureSize ; +struct +{ + float frequency; + float amplitude; + float phase; + float2 direction; +} wave[3] : register(vs_2_0, c11) : register(vs_3_0, c11) = { 0.1, 1, 1, 0.2, -0.7, 0.25, 0.5, 0.5, -1, -0.7, 0.15, 0.5, 1.5, -1, 0.2 }; +column_major float4x3 World : World : register(vs_3_0, c32); +float Time : Time : register(vs_2_0, c33) : register(vs_3_0, c38); +// PS_WaterShadowMap_Array_Shader_0 Pixel_3_0 Has PRES True +struct PS_WaterShadowMap_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_WaterShadowMap_Array_Shader_0(PS_WaterShadowMap_Array_Shader_0_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // rcp c11.x, c0.x + expr11.x = 1.0f / (DisplacementTextureSize.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 2, -1, 1, 0 + // def c1, 50, 0.5, 0.2, 2.2 + // def c2, 50, 0, 1, 0.025 + // def c3, 3, 0.15, -0.1, 0 + // dcl_color v0.w + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_texcoord3 v3 + // dcl_texcoord4 v4 + // dcl_texcoord5 v5.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_cube s3 + // dcl_2d s4 + // dcl_2d s5 + // dcl_2d s6 + // mov r0.zw, c0 + temp0.zw = float2(1, 0); + // mad r0.xy, c11.x, r0.zwzw, v4 + temp0.xy = expr11.xx * temp0.zw + i.texcoord4.xy; + // texld r1, r0, s6 + temp1 = tex2D(DisplacementTextureSampler, temp0.xy); + // texld r2, v4, s6 + temp2 = tex2D(DisplacementTextureSampler, i.texcoord4.xy); + // add r0.x, r1.z, -r2.z + temp0.x = temp1.z + -temp2.z; + // mad r0.zw, c11.x, r0.xywz, v4.xyxy + temp0.zw = expr11.xx * temp0.wz + i.texcoord4.xy; + // texld r1, r0.zwzw, s6 + temp1 = tex2D(DisplacementTextureSampler, temp0.zw); + // add r0.y, -r2.z, r1.z + temp0.y = -temp2.z + temp1.z; + // mul r0.xy, r0, c1.x + temp0.xy = temp0.xy * float2(50, 50); + // texld r1, v2, s0 + temp1 = tex2D(StaticDisplacementTextureSampler, i.texcoord1.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // texld r2, v2.zwzw, s0 + temp2 = tex2D(StaticDisplacementTextureSampler, i.texcoord1.zw); + // mad r1.xyz, r2, c0.x, r1 + temp1.xyz = temp2.xyz * float3(2, 2, 2) + temp1.xyz; + // add r1.xyz, r1, c0.y + temp1.xyz = temp1.xyz + float3(-1, -1, -1); + // mov r0.z, c1.y + temp0.z = float1(0.5); + // mad r0.xyz, r1, c1.z, r0 + temp0.xyz = temp1.xyz * float3(0.2, 0.2, 0.2) + temp0.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mad r0.xyz, r1, c2.x, c2.yyzw + temp0.xyz = temp1.xyz * float3(50, 50, 50) + float3(0, 0, 1); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // add r0.xyz, c123, -v3 + temp0.xyz = EyePosition.xyz + -i.texcoord3.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // add r0.y, r0.x, r0.x + temp0.y = temp0.x + temp0.x; + // add r0.x, -r0.x, c0.z + temp0.x = -temp0.x + float1(1); + // mad r0.yzw, r1.xxyz, -r0.y, r2.xxyz + temp0.yzw = temp1.xyz * -temp0.yyy + temp2.xyz; + // mov r0.yzw, -r0 + temp0.yzw = -temp0.yzw; + // texld r2, r0.yzww, s3 + temp2 = texCUBE(EnvironmentTextureSampler, temp0.yzw); + // log r0.y, r2.x + temp0.y = log2(temp2.x); + // log r0.z, r2.y + temp0.z = log2(temp2.y); + // log r0.w, r2.z + temp0.w = log2(temp2.z); + // mul r0.yzw, r0, c1.w + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.y + temp2.x = exp2(temp0.y); + // exp r2.y, r0.z + temp2.y = exp2(temp0.z); + // exp r2.z, r0.w + temp2.z = exp2(temp0.w); + // mul r0.yzw, r2.xxyz, c5.xxyz + temp0.yzw = temp2.xyz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0.x, r0.yzww + temp0.xyz = temp0.xxx * temp0.yzw; + // mul r1.zw, r1.xyxy, c1.z + temp1.zw = temp1.xy * float2(0.2, 0.2); + // mad r1.xy, r1, c3.y, v4.zwzw + temp1.xy = temp1.xy * float2(0.15, 0.15) + i.texcoord4.zw; + // mad r2, v3.xyzx, c0.zzzw, c0.wwwz + temp2 = i.texcoord3.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r3.x, r2, c119 + temp3.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 r3.y, r2, c120 + temp3.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.w, r2, c122 + temp0.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add r2.xy, r3, r0.w + temp2.xy = temp3.xy + temp0.ww; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mul r2.xy, r2, c1.y + temp2.xy = temp2.xy * float2(0.5, 0.5); + // mad r1.zw, r2.xyxy, r0.w, r1 + temp1.zw = temp2.xy * temp0.ww + temp1.zw; + // texld r2, r1.zwzw, s1 + temp2 = tex2D(WaterReflectionTextureSampler, temp1.zw); + // texld r3, v1, s5 + temp3 = tex2D(FoamSampler, i.texcoord.xy); + // texld r4, v1.zwzw, s5 + temp4 = tex2D(FoamSampler, i.texcoord.zw); + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul r3.xyz, r3, r3 + temp3.xyz = temp3.xyz * temp3.xyz; + // mul r0.w, c1.z, v3.w + temp0.w = float1(0.2) * i.texcoord3.w; + // max r1.z, r0.w, c2.w + temp1.z = max(temp0.w, float1(0.025)); + // min r0.w, r1.z, c3.x + temp0.w = min(temp1.z, float1(3)); + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mad r2.xyz, r2, c1.y, r3 + temp2.xyz = temp2.xyz * float3(0.5, 0.5, 0.5) + temp3.xyz; + // mad r0.xyz, r0, c0.x, r2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + temp2.xyz; + // texld r1, r1, s2 + temp1 = tex2D(WaterRefractionTextureSampler, temp1.xy); + // texld r2, v4.zwzw, s2 + temp2 = tex2D(WaterRefractionTextureSampler, i.texcoord4.zw); + // add r3.xyz, r1, -r2 + temp3.xyz = temp1.xyz + -temp2.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // add r0.w, r0.w, c3.z + temp0.w = temp0.w + float1(-0.1); + // cmp r1.xyz, r0.w, r2, r1 + temp1.xyz = (temp0.www >= 0) ? temp2.xyz : temp1.xyz; + // texld r2, v5, s4 + temp2 = tex2D(ShroudSamplerSampler, i.texcoord5.xy); + // mad oC0.xyz, r2.x, r0, r1 + out_color.xyz = temp2.xxx * temp0.xyz + temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_WaterShadowMap_Array_Shader_1 Pixel_3_0 Has PRES True +struct PS_WaterShadowMap_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +float4 PS_WaterShadowMap_Array_Shader_1(PS_WaterShadowMap_Array_Shader_1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // rcp c12.x, c0.x + expr12.x = 1.0f / (DisplacementTextureSize.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 2, -1, 1, 0 + // def c1, 50, 0.5, 0.2, 0.01 + // def c2, 50, 0, 1, 0.25 + // def c3, 2.2, 0.025, 3, 0.15 + // def c4, -0.1, 0, 0, 0 + // dcl_color v0.w + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dcl_texcoord2 v3.xyz + // dcl_texcoord3 v4 + // dcl_texcoord4 v5 + // dcl_texcoord5 v6.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_cube s4 + // dcl_2d s5 + // dcl_2d s6 + // dcl_2d s7 + // mov r0.zw, c0 + temp0.zw = float2(1, 0); + // mad r0.xy, c12.x, r0.zwzw, v5 + temp0.xy = expr12.xx * temp0.zw + i.texcoord4.xy; + // texld r1, r0, s7 + temp1 = tex2D(DisplacementTextureSampler, temp0.xy); + // texld r2, v5, s7 + temp2 = tex2D(DisplacementTextureSampler, i.texcoord4.xy); + // add r0.x, r1.z, -r2.z + temp0.x = temp1.z + -temp2.z; + // mad r0.zw, c12.x, r0.xywz, v5.xyxy + temp0.zw = expr12.xx * temp0.wz + i.texcoord4.xy; + // texld r1, r0.zwzw, s7 + temp1 = tex2D(DisplacementTextureSampler, temp0.zw); + // add r0.y, -r2.z, r1.z + temp0.y = -temp2.z + temp1.z; + // mul r0.xy, r0, c1.x + temp0.xy = temp0.xy * float2(50, 50); + // texld r1, v2, s1 + temp1 = tex2D(StaticDisplacementTextureSampler, i.texcoord1.xy); + // mad r1.xyz, r1, c0.x, c0.y + temp1.xyz = temp1.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // texld r2, v2.zwzw, s1 + temp2 = tex2D(StaticDisplacementTextureSampler, i.texcoord1.zw); + // mad r1.xyz, r2, c0.x, r1 + temp1.xyz = temp2.xyz * float3(2, 2, 2) + temp1.xyz; + // add r1.xyz, r1, c0.y + temp1.xyz = temp1.xyz + float3(-1, -1, -1); + // mov r0.z, c1.y + temp0.z = float1(0.5); + // mad r0.xyz, r1, c1.z, r0 + temp0.xyz = temp1.xyz * float3(0.2, 0.2, 0.2) + temp0.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r0.xy, r1, c1.w + temp0.xy = temp1.xy * float2(0.01, 0.01); + // mad r1.xyz, r1, c2.x, c2.yyzw + temp1.xyz = temp1.xyz * float3(50, 50, 50) + float3(0, 0, 1); + // mov r0.z, c0.w + temp0.z = float1(0); + // add r0.xyz, r0, v3 + temp0.xyz = temp0.xyz + i.texcoord2.xyz; + // add r2.xy, r0, c11.zxzw + temp2.xy = temp0.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // mov r2.y, r2.x + temp2.y = temp2.x; + // add r3.xy, r0, c11.yzzw + temp3.xy = temp0.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // texld r3, r3, s0 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // mov r2.z, r3.x + temp2.z = temp3.x; + // add r3.xy, r0, c11.wzzw + temp3.xy = temp0.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r3, r3, s0 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // mov r2.w, r3.x + temp2.w = temp3.x; + // texld r3, r0, s0 + temp3 = tex2D(ShadowMapSampler, temp0.xy); + // mov r2.x, r3.x + temp2.x = temp3.x; + // add r0, -r0.z, r2 + temp0 = -temp0.z + temp2; + // cmp r0, r0, c0.z, c0.w + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.z, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c2.w + temp0.x = temp0.x * float1(0.25); + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // add r0.yzw, c123.xxyz, -v4.xxyz + temp0.yzw = EyePosition.xyz + -i.texcoord3.xyz; + // nrm r1.xyz, r0.yzww + temp1.xyz = normalize(temp0.yzww.xyz).xyz; + // dp3 r0.y, r1, r2 + temp0.y = dot(temp1.xyz, temp2.xyz); + // add r0.z, r0.y, r0.y + temp0.z = temp0.y + temp0.y; + // add r0.y, -r0.y, c0.z + temp0.y = -temp0.y + float1(1); + // mad r1.xyz, r2, -r0.z, r1 + temp1.xyz = temp2.xyz * -temp0.zzz + temp1.xyz; + // mov r1.xyz, -r1 + temp1.xyz = -temp1.xyz; + // texld r1, r1, s4 + temp1 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // log r3.x, r1.x + temp3.x = log2(temp1.x); + // log r3.y, r1.y + temp3.y = log2(temp1.y); + // log r3.z, r1.z + temp3.z = log2(temp1.z); + // mul r1.xyz, r3, c3.x + temp1.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r1.x + temp3.x = exp2(temp1.x); + // exp r3.y, r1.y + temp3.y = exp2(temp1.y); + // exp r3.z, r1.z + temp3.z = exp2(temp1.z); + // mul r1.xyz, r3, c5 + temp1.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mul r0.yzw, r0.y, r1.xxyz + temp0.yzw = temp0.yyy * temp1.xyz; + // mul r0.xyz, r0.x, r0.yzww + temp0.xyz = temp0.xxx * temp0.yzw; + // mul r1.xy, r2, c1.z + temp1.xy = temp2.xy * float2(0.2, 0.2); + // mad r1.zw, r2.xyxy, c3.w, v5 + temp1.zw = temp2.xy * float2(0.15, 0.15) + i.texcoord4.zw; + // mad r2, v4.xyzx, c0.zzzw, c0.wwwz + temp2 = i.texcoord3.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r3.x, r2, c119 + temp3.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 r3.y, r2, c120 + temp3.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 r0.w, r2, c122 + temp0.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add r2.xy, r3, r0.w + temp2.xy = temp3.xy + temp0.ww; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mul r2.xy, r2, c1.y + temp2.xy = temp2.xy * float2(0.5, 0.5); + // mad r1.xy, r2, r0.w, r1 + temp1.xy = temp2.xy * temp0.ww + temp1.xy; + // texld r2, r1, s2 + temp2 = tex2D(WaterReflectionTextureSampler, temp1.xy); + // texld r3, v1, s6 + temp3 = tex2D(FoamSampler, i.texcoord.xy); + // texld r4, v1.zwzw, s6 + temp4 = tex2D(FoamSampler, i.texcoord.zw); + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul r3.xyz, r3, r3 + temp3.xyz = temp3.xyz * temp3.xyz; + // mul r0.w, c1.z, v4.w + temp0.w = float1(0.2) * i.texcoord3.w; + // max r1.x, r0.w, c3.y + temp1.x = max(temp0.w, float1(0.025)); + // min r0.w, r1.x, c3.z + temp0.w = min(temp1.x, float1(3)); + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // mul r3.xyz, r3, c5 + temp3.xyz = temp3.xyz * DirectionalLight[0].Color.xyz; + // mad r2.xyz, r2, c1.y, r3 + temp2.xyz = temp2.xyz * float3(0.5, 0.5, 0.5) + temp3.xyz; + // mad r0.xyz, r0, c0.x, r2 + temp0.xyz = temp0.xyz * float3(2, 2, 2) + temp2.xyz; + // texld r1, r1.zwzw, s3 + temp1 = tex2D(WaterRefractionTextureSampler, temp1.zw); + // texld r2, v5.zwzw, s3 + temp2 = tex2D(WaterRefractionTextureSampler, i.texcoord4.zw); + // add r3.xyz, r1, -r2 + temp3.xyz = temp1.xyz + -temp2.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // add r0.w, r0.w, c4.x + temp0.w = temp0.w + float1(-0.1); + // cmp r1.xyz, r0.w, r2, r1 + temp1.xyz = (temp0.www >= 0) ? temp2.xyz : temp1.xyz; + // texld r2, v6, s5 + temp2 = tex2D(ShroudSamplerSampler, i.texcoord5.xy); + // mad oC0.xyz, r2.x, r0, r1 + out_color.xyz = temp2.xxx * temp0.xyz + temp1.xyz; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +PixelShader PS_WaterShadowMap_Array[2] = { + compile ps_3_0 PS_WaterShadowMap_Array_Shader_0(), // 85 + compile ps_3_0 PS_WaterShadowMap_Array_Shader_1(), // 86 +}; +// Default_L_PixelShader3 Pixel_2_0 Has PRES False +struct Default_L_PixelShader3_Input +{ + float4 color : COLOR; + float3 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 Default_L_PixelShader3(Default_L_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.2, 0, 0, 0 + // dcl v0 + // dcl t0.xyz + // dcl t1 + // dcl_cube s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = texCUBE(EnvironmentTextureSampler, i.texcoord.xyz); + // mad r0.xyz, r0, c5, v0 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz + i.color.xyz; + // mov r1.xy, t1.wzyx + temp1.xy = i.texcoord1.wz; + // texld r1, r1, s2 + temp1 = tex2D(FoamSampler, temp1.xy); + // texld r2, t1, s1 + temp2 = tex2D(ShroudSamplerSampler, i.texcoord1.xy); + // mad r0.xyz, r1, c0.x, r0 + temp0.xyz = temp1.xyz * float3(0.2, 0.2, 0.2) + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mul r0, r2.x, r0 + temp0 = temp2.x * temp0; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_L_VertexShader4 Vertex_2_0 Has PRES True +struct Default_L_VertexShader4_Output +{ + float4 position : POSITION; + float3 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 color : COLOR; +}; + +Default_L_VertexShader4_Output Default_L_VertexShader4(float4 position : POSITION) +{ + /* + PRSI + OutputRegisterOffset: 15 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 15 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr15; + { + // Expression_2_1 + // mul c15.x, c0.x, (0.05) + expr15.x = Time.x * (0.05); + } + + Default_L_VertexShader4_Output o; + float4 temp0; + float3 temp1, temp2; + // def c0, 0.01, 0, 0, 0 + // def c1, 1, 0, -0, -2 + // def c2, 0.16, 0.47, 0.69, 0.6 + // dcl_position v0 + // mov r0.w, c1.x + temp0.w = float1(1); + // mad r1.xyz, v0.xyxw, c1.xxyw, c1.zzxw + temp1.xyz = position.xyx * float3(1, 1, 0) + float3(-0, -0, 1); + // dp3 r0.z, r1, c13.xyww + temp0.z = dot(temp1.xyz, (World._m02_m12_m22_m32).xyw); + // dp3 r0.x, r1, c11.xyww + temp0.x = dot(temp1.xyz, (World._m00_m10_m20_m30).xyw); + // dp3 r0.y, r1, c12.xyww + temp0.y = dot(temp1.xyz, (World._m01_m11_m21_m31).xyw); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xyz, -r0, c123 + temp1.xyz = -temp0.xyz + EyePosition.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // mad r1.xyz, r2.z, c1.zzww, r2 + temp1.xyz = temp2.zzz * float3(-0, -0, -2) + temp2.xyz; + // mov oT0.xyz, -r1 + o.texcoord = -temp1; + // add r0.zw, r0.xyxy, c14 + temp0.zw = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mov r1.x, c0.x + temp1.x = float1(0.01); + // mad oT1.zw, r0.xyyx, r1.x, -c15.x + o.texcoord1.zw = temp0.yx * temp1.xx + -expr15.xx; + // mul oT1.xy, r0.zwzw, c14 + o.texcoord1.xy = temp0.zw * Shroud.ScaleUV_OffsetUV.xy; + // mov oD0, c2 + o.color = float4(0.16, 0.47, 0.69, 0.6); + // + + return o; +} + +// Default_M_PixelShader5 Pixel_2_0 Has PRES False +struct Default_M_PixelShader5_Input +{ + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; +}; + +float4 Default_M_PixelShader5(Default_M_PixelShader5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 2, -1, 0.2, 0.5 + // def c1, 50, 0.15, -0.15, 0 + // def c2, 0.16, 0.57, 0.79, 0 + // dcl v0 + // dcl t0 + // dcl t1 + // dcl t2 + // dcl t3.xy + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // texld r0, t0, s0 + temp0 = tex2D(StaticDisplacementTextureSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.x, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov r1.x, t0.z + temp1.x = i.texcoord.z; + // mov r1.y, t0.w + temp1.y = i.texcoord.w; + // texld r1, r1, s0 + temp1 = tex2D(StaticDisplacementTextureSampler, temp1.xy); + // mad r0.xyz, r1, c0.x, r0 + temp0.xyz = temp1.xyz * float3(2, 2, 2) + temp0.xyz; + // add r0.xyz, r0, c0.y + temp0.xyz = temp0.xyz + float3(-1, -1, -1); + // mul r0.xyz, r0, c0.z + temp0.xyz = temp0.xyz * float3(0.2, 0.2, 0.2); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r1.w, t1.w, c0.w + temp1.w = i.texcoord1.w * float1(0.5); + // mad r0.xyz, r1, c1.x, r1.w + temp0.xyz = temp1.xyz * float3(50, 50, 50) + temp1.www; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // dp3 r1.w, t1, r1 + temp1.w = dot(i.texcoord1.xyz, temp1.xyz); + // add r1.w, r1.w, r1.w + temp1.w = temp1.w + temp1.w; + // mad r0.xyz, r1, -r1.w, t1 + temp0.xyz = temp1.xyz * -temp1.www + i.texcoord1.xyz; + // mad r2.x, r1.x, c1.y, t2.z + temp2.x = temp1.x * float1(0.15) + i.texcoord2.z; + // mad r2.y, r1.y, c1.y, t2.w + temp2.y = temp1.y * float1(0.15) + i.texcoord2.w; + // mov r0.xyz, -r0 + temp0.xyz = -temp0.xyz; + // mov r1.x, t2.z + temp1.x = i.texcoord2.z; + // mov r1.y, t2.w + temp1.y = i.texcoord2.w; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // texld r2, r2, s1 + temp2 = tex2D(WaterRefractionTextureSampler, temp2.xy); + // texld r1, r1, s1 + temp1 = tex2D(WaterRefractionTextureSampler, temp1.xy); + // texld r3, t3, s3 + temp3 = tex2D(ShroudSamplerSampler, i.texcoord3.xy); + // mul r0.xyz, r0, c5 + temp0.xyz = temp0.xyz * DirectionalLight[0].Color.xyz; + // add r4.xyz, r2, -r1 + temp4.xyz = temp2.xyz + -temp1.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // add r0.w, r0.w, c1.z + temp0.w = temp0.w + float1(-0.15); + // cmp r1.xyz, r0.w, r1, r2 + temp1.xyz = (temp0.www >= 0) ? temp1.xyz : temp2.xyz; + // mad r0.xyz, r1, c2, r0 + temp0.xyz = temp1.xyz * float3(0.16, 0.57, 0.79) + temp0.xyz; + // mul r0.xyz, r3.x, r0 + temp0.xyz = temp3.xxx * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_M_VertexShader6 Vertex_2_0 Has PRES True +struct Default_M_VertexShader6_Output +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float4 texcoord2 : TEXCOORD2; + float4 color : COLOR; +}; + +Default_M_VertexShader6_Output Default_M_VertexShader6(float4 position : POSITION) +{ + /* + PRSI + OutputRegisterOffset: 23 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 23 + Unknown6: 1 + Mappings: 2 + 0 - ConstOutput: 25 ConstInput 2 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr23; + float4 expr24; + float4 expr25; + float4 expr26; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul r0.x, c1.x, c3.x + temp0.x = OctaveSpeed.x * Time.x; + // mul r1.x, r0.x, (0.015) + temp1.x = temp0.x * (0.015); + // mul r0.x, r1.x, c2.x + temp0.x = temp1.x * OctaveDivergenceSpeed.x; + // add c23.x, r1.x, r0.x + expr23.x = temp1.x + temp0.x; + // neg r1.y, r0.x + temp1.y = -temp0.x; + // add c25.x, r1.x, r1.y + expr25.x = temp1.x + temp1.y; + // mov c26.xyz, c0.xyz + expr26.xyz = MaterialColorDiffuse.xyz; + // mov c26.w, (1) + expr26.w = (1); + } + + Default_M_VertexShader6_Output o; + float4 temp0, temp1; + float addr0; + float3 temp2; + float2 temp3; + // def c0, 0.1591549, 0.5, 6.283185, -3.141593 + // def c1, 0.002047857, 0.001433974, -0.002047857, 4 + // def c2, 0.5, -0.5, 0, 0 + // def c3, 1, 0, 0.001433974, 0 + // def c4, 1, -1, 0, 0 + // def c5, -1.550099E-06, -2.170139E-05, 0.002604167, 0.0002604167 + // def c6, -0.02083333, -0.125, 1, 0.5 + // defi i0, 3, 0, 0, 0 + // dcl_position v0 + // mad r0.xyz, v0.xyxw, c3.xxyw, c3.yyxw + temp0.xyz = position.xyx * float3(1, 1, 0) + float3(0, 0, 1); + // dp3 r0.w, r0, c29.xyww + temp0.w = dot(temp0.xyz, (World._m02_m12_m22_m32).xyw); + // dp3 r1.x, r0, c27.xyww + temp1.x = dot(temp0.xyz, (World._m00_m10_m20_m30).xyw); + // dp3 r1.y, r0, c28.xyww + temp1.y = dot(temp0.xyz, (World._m01_m11_m21_m31).xyw); + // mul r0.xyz, r1.y, c1 + temp0.xyz = temp1.yyy * float3(0.002047857, 0.001433974, -0.002047857); + // mad oT0.yw, r1.x, c1.xzzx, r0.y + o.texcoord.yw = temp1.xx * float2(-0.002047857, 0.002047857) + temp0.yy; + // mad r0.xy, r1.x, c3.z, r0.xzzw + temp0.xy = temp1.xx * float2(0.001433974, 0.001433974) + temp0.xz; + // add oT0.x, r0.x, c23.x + o.texcoord.x = temp0.x + expr23.x; + // add oT0.z, r0.y, c25.x + o.texcoord.z = temp0.y + expr25.x; + // mov r1.z, r0.w + temp1.z = temp0.w; + // mov r0.xy, c3.y + temp0.xy = float2(0, 0); + // rep i0 + for (int it0 = 0; it0 < int1(3); ++it0) { + // mul r0.z, r0.y, c1.w + temp0.z = temp0.y * float1(4); + // mova a0.x, r0.z + addr0.x = temp0.z; + // mov r2.x, c33.x + temp2.x = Time.x; + // mul r0.z, r2.x, c13[a0.x].x + temp0.z = temp2.x * wave[0 + (addr0.x / 4)].phase.x; + // mov r2.x, c12[a0.x].x + temp2.x = wave[0 + (addr0.x / 4)].amplitude.x; + // mul r2.x, r2.x, c31.x + temp2.x = temp2.x * WaveAmplitude.x; + // mul r2.yz, r1.xxyw, c14[a0.x].xxyw + temp2.yz = temp1.xy * wave[0 + (addr0.x / 4)].direction.xy; + // add r2.y, r2.z, r2.y + temp2.y = temp2.z + temp2.y; + // mul r2.y, r2.y, c11[a0.x].x + temp2.y = temp2.y * wave[0 + (addr0.x / 4)].frequency.x; + // mad r0.z, r2.y, c32.x, r0.z + temp0.z = temp2.y * WaveFrequency.x + temp0.z; + // mad r0.z, r0.z, c0.x, c0.y + temp0.z = temp0.z * float1(0.15915494) + float1(0.5); + // frc r0.z, r0.z + temp0.z = frac(temp0.z); + // mad r0.z, r0.z, c0.z, c0.w + temp0.z = temp0.z * float1(6.2831855) + float1(-3.1415927); + // sincos r3.xy, r0.z, c5, c6 + temp3.xy = float2(cos(temp0.z), sin(temp0.z)); + // mad r0.x, r2.x, r3.x, r0.x + temp0.x = temp2.x * temp3.x + temp0.x; + // mul r0.z, r2.x, r3.y + temp0.z = temp2.x * temp3.y; + // max r0.z, r0.z, c3.y + temp0.z = max(temp0.z, float1(0)); + // add r1.z, r1.z, r0.z + temp1.z = temp1.z + temp0.z; + // add r0.y, r0.y, c3.x + temp0.y = temp0.y + float1(1); + // endrep + } + // mov oT1.w, r0.x + o.texcoord1.w = temp0.x; + // add r0.xyz, -r1, c123 + temp0.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r0, r0 + temp0.w = dot(temp0.xyz, temp0.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul oT1.xyz, r0, r0.w + o.texcoord1.xyz = temp0.xyz * temp0.www; + // add r0.xy, r1, c30.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0, c30 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov r1.w, c3.x + temp1.w = float1(1); + // dp4 r0.z, r1, c122 + temp0.z = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // mov oPos.xyw, r0.xyzz + o.position.xyw = temp0.xyz; + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // mul r0.xy, r0, r0.z + temp0.xy = temp0.xy * temp0.zz; + // mad oT2.zw, r0.xyxy, c2.xyxy, c2.x + o.texcoord2.zw = temp0.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // mov oD0, c26 + o.color = expr26; + // mad oT2.xy, v0, c4, c4.zxzw + o.texcoord2.xy = position.xy * float2(1, -1) + float2(0, 1); + // + + return o; +} + +// Default_Expression7 Expression_2_0 Has PRES False +float Default_Expression7() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_VertexShader8 Vertex_3_0 Has PRES True +struct Default_VertexShader8_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float2 texcoord5 : TEXCOORD5; +}; + +Default_VertexShader8_Output Default_VertexShader8(float4 position : POSITION) +{ + /* + PRSI + OutputRegisterOffset: 23 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 9 + Unknown3: 0 + Unknown4: 0 + Unknown5: 23 + Unknown6: 4 + Mappings: 2 + 0 - ConstOutput: 28 ConstInput 4 + 1 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr23; + float4 expr24; + float4 expr25; + float4 expr26; + float4 expr27; + float4 expr28; + float4 expr29; + float4 expr30; + float4 expr31; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // mul c23.x, c3.x, (0.005) + expr23.x = Foam1Scalar.x * (0.005); + // mul c24.x, c4.x, (0.004) + expr24.x = Foam2Scalar.x * (0.004); + // mul r0.x, c5.x, c8.x + temp0.x = FoamSpeed.x * Time.x; + // mul c25.x, r0.x, (0.011) + expr25.x = temp0.x * (0.011); + // mul r0.x, c6.x, c8.x + temp0.x = OctaveSpeed.x * Time.x; + // mul r1.x, r0.x, (0.015) + temp1.x = temp0.x * (0.015); + // mul r0.x, r1.x, c7.x + temp0.x = temp1.x * OctaveDivergenceSpeed.x; + // add c26.x, r1.x, r0.x + expr26.x = temp1.x + temp0.x; + // neg r1.y, r0.x + temp1.y = -temp0.x; + // add c28.x, r1.x, r1.y + expr28.x = temp1.x + temp1.y; + // add c29.x, c1.x, c2.x + expr29.x = FoamHeight.x + FoamBlend.x; + // rcp c30.x, c2.x + expr30.x = 1.0f / (FoamBlend.x); + // mov c31.xyz, c0.xyz + expr31.xyz = MaterialColorDiffuse.xyz; + // mov c31.w, (1) + expr31.w = (1); + } + + Default_VertexShader8_Output o; + float4 temp0, temp1, temp2; + float addr0; + float3 temp3; + float2 temp4; + // def c0, 0.002047857, 0.001433974, -0.002047857, 4 + // def c1, 0.1591549, 0.5, 6.283185, -3.141593 + // def c2, 1, 0, 0.001433974, 0 + // def c3, 0.5, -0.5, 0, -0.0015 + // def c4, 1, -1, 0, 0 + // defi i0, 3, 0, 0, 0 + // dcl_position v0 + // dcl_position o0 + // dcl_color o1 + // dcl_texcoord o2 + // dcl_texcoord1 o3 + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6 + // dcl_texcoord5 o7.xy + // mad r0.xyz, v0.xyxw, c2.xxyw, c2.yyxw + temp0.xyz = position.xyx * float3(1, 1, 0) + float3(0, 0, 1); + // dp3 r1.x, r0, c32.xyww + temp1.x = dot(temp0.xyz, (World._m00_m10_m20_m30).xyw); + // dp3 r1.y, r0, c33.xyww + temp1.y = dot(temp0.xyz, (World._m01_m11_m21_m31).xyw); + // dp3 r0.x, r0, c34.xyww + temp0.x = dot(temp0.xyz, (World._m02_m12_m22_m32).xyw); + // mul r0.y, r1.y, c23.x + temp0.y = temp1.y * expr23.x; + // mul r0.z, r1.y, c24.x + temp0.z = temp1.y * expr24.x; + // mov r2.x, c23.x + temp2.x = expr23.x; + // mad o2.x, r1.x, r2.x, c25.x + o.texcoord.x = temp1.x * temp2.x + expr25.x; + // mov r2.x, c24.x + temp2.x = expr24.x; + // mad o2.z, r1.x, r2.x, -c25.x + o.texcoord.z = temp1.x * temp2.x + -expr25.x; + // mul r2, r1.y, c0.xyzy + temp2 = temp1.y * float4(0.002047857, 0.001433974, -0.002047857, 0.001433974); + // mad r2.xz, r1.x, c2.z, r2 + temp2.xz = temp1.xx * float2(0.001433974, 0.001433974) + temp2.xz; + // add o3.x, r2.x, c26.x + o.texcoord1.x = temp2.x + expr26.x; + // mad o3.yw, r1.x, c0.xzzx, r2 + o.texcoord1.yw = temp1.xx * float2(-0.002047857, 0.002047857) + temp2.yw; + // add o3.z, r2.z, c28.x + o.texcoord1.z = temp2.z + expr28.x; + // mov r1.z, r0.x + temp1.z = temp0.x; + // mov r0.w, c2.y + temp0.w = float1(0); + // rep i0 + for (int it0 = 0; it0 < int1(3); ++it0) { + // mul r2.x, r0.w, c0.w + temp2.x = temp0.w * float1(4); + // mova a0.x, r2.x + addr0.x = temp2.x; + // mov r2.x, c12[a0.x].x + temp2.x = wave[0 + (addr0.x / 4)].amplitude.x; + // mul r2.x, r2.x, c36.x + temp2.x = temp2.x * WaveAmplitude.x; + // mul r2.yz, r1.xxyw, c14[a0.x].xxyw + temp2.yz = temp1.xy * wave[0 + (addr0.x / 4)].direction.xy; + // add r2.y, r2.z, r2.y + temp2.y = temp2.z + temp2.y; + // mul r2.y, r2.y, c11[a0.x].x + temp2.y = temp2.y * wave[0 + (addr0.x / 4)].frequency.x; + // mov r3.x, c38.x + temp3.x = Time.x; + // mul r2.z, r3.x, c13[a0.x].x + temp2.z = temp3.x * wave[0 + (addr0.x / 4)].phase.x; + // mad r2.y, r2.y, c37.x, r2.z + temp2.y = temp2.y * WaveFrequency.x + temp2.z; + // mad r2.y, r2.y, c1.x, c1.y + temp2.y = temp2.y * float1(0.15915494) + float1(0.5); + // frc r2.y, r2.y + temp2.y = frac(temp2.y); + // mad r2.y, r2.y, c1.z, c1.w + temp2.y = temp2.y * float1(6.2831855) + float1(-3.1415927); + // sincos r3.y, r2.y + temp3.y = sin(temp2.y); + // mul r2.x, r2.x, r3.y + temp2.x = temp2.x * temp3.y; + // max r2.x, r2.x, c2.y + temp2.x = max(temp2.x, float1(0)); + // add r1.z, r1.z, r2.x + temp1.z = temp1.z + temp2.x; + // add r0.w, r0.w, c2.x + temp0.w = temp0.w + float1(1); + // endrep + } + // add r0.x, -r0.x, r1.z + temp0.x = -temp0.x + temp1.z; + // slt r0.w, c29.x, r0.x + temp0.w = (expr29.x < temp0.x) ? 1 : 0; + // add r0.x, r0.x, -c29.x + temp0.x = temp0.x + -expr29.x; + // mul r0.x, r0.x, c30.x + temp0.x = temp0.x * expr30.x; + // mul o5.w, r0.w, r0.x + o.texcoord3.w = temp0.w * temp0.x; + // mov r1.w, c2.x + temp1.w = float1(1); + // dp4 r2.x, r1, c119 + temp2.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r2.y, r1, c120 + temp2.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 r2.z, r1, c122 + temp2.z = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // dp4 r3.x, r1, c113 + temp3.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r3.y, r1, c114 + temp3.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r3.z, r1, c115 + temp3.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.w, r0.x + temp0.w = 1.0f / temp0.x; + // rcp r1.w, r2.z + temp1.w = 1.0f / temp2.z; + // mul r4.xy, r2, r1.w + temp4.xy = temp2.xy * temp1.ww; + // mad o6.zw, r4.xyxy, c3.xyxy, c3.x + o.texcoord4.zw = temp4.xy * float2(0.5, -0.5) + float2(0.5, 0.5); + // add r4.xy, r1, c35.zwzw + temp4.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul o7.xy, r4, c35 + o.texcoord5 = temp4 * Shroud.ScaleUV_OffsetUV; + // mov o0.xyw, r2.xyzz + o.position.xyw = temp2.xyz; + // mov o1, c31 + o.color = expr31; + // mov o2.yw, r0.xyzz + o.texcoord.yw = temp0.yz; + // mad o4.xyz, r3, r0.w, c3.zzww + o.texcoord2.xyz = temp3.xyz * temp0.www + float3(0, 0, -0.0015); + // mov o4.w, r0.x + o.texcoord2.w = temp0.x; + // mov o5.xyz, r1 + o.texcoord3.xyz = temp1.xyz; + // mad o6.xy, v0, c4, c4.zxzw + o.texcoord4.xy = position.xy * float2(1, -1) + float2(0, 1); + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_3_0 Default_VertexShader8(); // 87 + PixelShader = PS_WaterShadowMap_Array[Default_Expression7()]; // 88 + AlphaBlendEnable = 0; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaTestEnable = 0; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader6(); // 89 + PixelShader = compile ps_2_0 Default_M_PixelShader5(); // 90 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + +technique Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_L_VertexShader4(); // 91 + PixelShader = compile ps_2_0 Default_L_PixelShader3(); // 92 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + } +} + diff --git a/outlines.fx b/outlines.fx new file mode 100644 index 0000000..9e39ace --- /dev/null +++ b/outlines.fx @@ -0,0 +1,447 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +bool IsHdrEnabled ; +texture PostEffectOutlineTexture ; // 3 +sampler2D PostEffectOutlineTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 5 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float2 FrameBufferSize = { 1, 1 }; +// Blit_PixelShader1 Pixel_2_0 Has PRES False +float4 Blit_PixelShader1(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(PostEffectOutlineTextureSampler, texcoord.xy); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Blit_VertexShader2 Vertex_2_0 Has PRES False +struct Blit_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Blit_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Blit_VertexShader2_Output Blit_VertexShader2(Blit_VertexShader2_Input i) +{ + Blit_VertexShader2_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// DrawWithStencil_PixelShader3 Pixel_2_0 Has PRES False +float4 DrawWithStencil_PixelShader3(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(PostEffectOutlineTextureSampler, texcoord.xy); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// DrawWithStencil_VertexShader4 Vertex_2_0 Has PRES False +struct DrawWithStencil_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct DrawWithStencil_VertexShader4_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +DrawWithStencil_VertexShader4_Output DrawWithStencil_VertexShader4(DrawWithStencil_VertexShader4_Input i) +{ + DrawWithStencil_VertexShader4_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// BlurBox_PixelShader5 Pixel_2_0 Has PRES False +struct BlurBox_PixelShader5_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +float4 BlurBox_PixelShader5(BlurBox_PixelShader5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float2 temp4; + // def c0, 1.25, 0, 0, 0 + // dcl t0.xy + // dcl t1 + // dcl_2d s0 + // mov r0.xy, t0 + temp0.xy = i.texcoord.xy; + // add r1.x, r0.x, t1.x + temp1.x = temp0.x + i.texcoord1.x; + // add r1.y, r0.y, t1.z + temp1.y = temp0.y + i.texcoord1.z; + // add r2.x, r0.x, t1.x + temp2.x = temp0.x + i.texcoord1.x; + // add r2.y, r0.y, t1.w + temp2.y = temp0.y + i.texcoord1.w; + // add r3.xy, r0, t1.yzxw + temp3.xy = temp0.xy + i.texcoord1.yz; + // add r4.x, r0.x, t1.y + temp4.x = temp0.x + i.texcoord1.y; + // add r4.y, r0.y, t1.w + temp4.y = temp0.y + i.texcoord1.w; + // texld r0, r1, s0 + temp0 = tex2D(PostEffectOutlineTextureSampler, temp1.xy); + // texld r1, r2, s0 + temp1 = tex2D(PostEffectOutlineTextureSampler, temp2.xy); + // texld r2, r3, s0 + temp2 = tex2D(PostEffectOutlineTextureSampler, temp3.xy); + // texld r3, r4, s0 + temp3 = tex2D(PostEffectOutlineTextureSampler, temp4.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // add r0, r2, r0 + temp0 = temp2 + temp0; + // add r0, r3, r0 + temp0 = temp3 + temp0; + // mul r0, r0, c0.x + temp0 = temp0 * float4(1.25, 1.25, 1.25, 1.25); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// BlurBox_VertexShader6 Vertex_2_0 Has PRES True +struct BlurBox_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct BlurBox_VertexShader6_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +BlurBox_VertexShader6_Output BlurBox_VertexShader6(BlurBox_VertexShader6_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (FrameBufferSize.x); + // mul c12.x, r0.x, (-1.5) + expr12.x = temp0.x * (-1.5); + // mul c12.y, r0.x, (1.5) + expr12.y = temp0.x * (1.5); + // rcp r0.x, c0.y + temp0.x = 1.0f / (FrameBufferSize.y); + // mul c12.z, r0.x, (-1.5) + expr12.z = temp0.x * (-1.5); + // mul c12.w, r0.x, (1.5) + expr12.w = temp0.x * (1.5); + } + + BlurBox_VertexShader6_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oT1, c12 + o.texcoord1 = expr12; + // + + return o; +} + +// FillHoverAttack_PixelShader7 Pixel_2_0 Has PRES False +float4 FillHoverAttack_PixelShader7() : COLOR +{ + float4 out_color; + // def c0, 1, 0, 0, 1 + // mov oC0, c0 + out_color = float4(1, 0, 0, 1); + // + + return out_color; +} + +// FillHoverAttack_VertexShader8 Vertex_2_0 Has PRES False +float4 FillHoverAttack_VertexShader8(float4 position : POSITION) : POSITION +{ + float4 out_position; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + out_position.xyz = position.xyz; + // mov oPos.w, c0.x + out_position.w = float1(1); + // + + return out_position; +} + +// FillHoverSelect_PixelShader9 Pixel_2_0 Has PRES False +float4 FillHoverSelect_PixelShader9() : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 1, 0, 0, 0 + // mov r0, c0.x + temp0 = float4(1, 1, 1, 1); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// FillHoverSelect_VertexShader10 Vertex_2_0 Has PRES False +float4 FillHoverSelect_VertexShader10(float4 position : POSITION) : POSITION +{ + float4 out_position; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + out_position.xyz = position.xyz; + // mov oPos.w, c0.x + out_position.w = float1(1); + // + + return out_position; +} + +// FillSelected_PixelShader11 Pixel_2_0 Has PRES False +float4 FillSelected_PixelShader11() : COLOR +{ + float4 out_color; + // def c0, 1, 0.713, 0, 1 + // mov oC0, c0 + out_color = float4(1, 0.713, 0, 1); + // + + return out_color; +} + +// FillSelected_VertexShader12 Vertex_2_0 Has PRES False +float4 FillSelected_VertexShader12(float4 position : POSITION) : POSITION +{ + float4 out_position; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + out_position.xyz = position.xyz; + // mov oPos.w, c0.x + out_position.w = float1(1); + // + + return out_position; +} + +technique FillSelected +{ + pass P0 + { + VertexShader = compile vs_2_0 FillSelected_VertexShader12(); // 10 + PixelShader = compile ps_2_0 FillSelected_PixelShader11(); // 11 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + StencilEnable = 1; + StencilFunc = 3; + StencilPass = 1; + StencilZFail = 1; + StencilFail = 1; + StencilMask = 1; + StencilRef = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique FillHoverSelect +{ + pass P0 + { + VertexShader = compile vs_2_0 FillHoverSelect_VertexShader10(); // 12 + PixelShader = compile ps_2_0 FillHoverSelect_PixelShader9(); // 13 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + StencilEnable = 1; + StencilFunc = 3; + StencilPass = 1; + StencilZFail = 1; + StencilFail = 1; + StencilMask = 2; + StencilRef = 2; + } +} + +technique FillHoverAttack +{ + pass P0 + { + VertexShader = compile vs_2_0 FillHoverAttack_VertexShader8(); // 14 + PixelShader = compile ps_2_0 FillHoverAttack_PixelShader7(); // 15 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + StencilEnable = 1; + StencilFunc = 3; + StencilPass = 1; + StencilZFail = 1; + StencilFail = 1; + StencilMask = 3; + StencilRef = 3; + } +} + +technique BlurBox +{ + pass P0 + { + VertexShader = compile vs_2_0 BlurBox_VertexShader6(); // 16 + PixelShader = compile ps_2_0 BlurBox_PixelShader5(); // 17 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + StencilEnable = 0; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique DrawWithStencil +{ + pass P0 + { + VertexShader = compile vs_2_0 DrawWithStencil_VertexShader4(); // 18 + PixelShader = compile ps_2_0 DrawWithStencil_PixelShader3(); // 19 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + StencilEnable = 1; + StencilFunc = 3; + StencilPass = 1; + StencilZFail = 1; + StencilFail = 1; + StencilMask = 3; + StencilRef = 0; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + +technique Blit +{ + pass P0 + { + VertexShader = compile vs_2_0 Blit_VertexShader2(); // 20 + PixelShader = compile ps_2_0 Blit_PixelShader1(); // 21 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + StencilEnable = 0; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + diff --git a/postfx_bloom.fx b/postfx_bloom.fx new file mode 100644 index 0000000..b38d550 --- /dev/null +++ b/postfx_bloom.fx @@ -0,0 +1,2022 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +bool IsHdrEnabled ; +texture FrameBufferSampler ; // 3 +sampler2D FrameBufferSamplerSampler = +sampler_state +{ + Texture = ; // 5 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +texture SourceTexture ; // 8 +sampler2D SourceTextureSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 10 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float2 SourceTextureSize = { 1024, 768 }; +float2 TargetTextureSize = { 1024, 768 }; +float BloomIntensity : register(ps_2_0, c11) = { 0.5 }; +float3 ExposureLevel : register(ps_3_0, c11) = { 1, 1, 1 }; +float2 TextureSizeHigh ; +float2 TextureSizeMedium ; +float2 TextureSizeLow ; +int SurfaceFormat = { 1 }; +int TextureFormat = { 1 }; +// DownsampleInitialPS_Array_Shader_0 Pixel_3_0 Has PRES False +float4 DownsampleInitialPS_Array_Shader_0(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 0.3, 0.11, -0.11, 0.0001 + // def c1, 0, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_2d s0 + // texld r0, v0, s0 + temp0 = tex2D(SourceTextureSampler, texcoord.xy); + // dp3 r1.x, r0, c0.x + temp1.x = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.y, -r1.x, c0.y + temp1.y = -temp1.x + float1(0.11); + // add r1.xz, r1.x, c0.zyww + temp1.xz = temp1.xx + float2(-0.11, 0.0001); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // rcp r1.z, r1.z + temp1.z = 1.0f / temp1.z; + // cmp r1.x, r1.y, c1.x, r1.x + temp1.x = (temp1.y >= 0) ? float1(0) : temp1.x; + // mul r1.x, r1.z, r1.x + temp1.x = temp1.z * temp1.x; + // mul r0.xyz, r0, r1.x + temp0.xyz = temp0.xyz * temp1.xxx; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul oC0.xyz, r0, c11 + out_color.xyz = temp0.xyz * ExposureLevel.xyz; + // + + return out_color; +} + +// DownsampleInitialPS_Array_Shader_1 Pixel_3_0 Has PRES True +float4 DownsampleInitialPS_Array_Shader_1(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // rcp c12.x, c0.x + expr12.x = 1.0f / (SourceTextureSize.x); + // rcp c12.y, c0.y + expr12.y = 1.0f / (SourceTextureSize.y); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2, 0, -1, 0.25 + // def c1, 0.3, 0.11, -0.11, 0.0001 + // defi i0, 2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_2d s0 + // mov r0, c0.y + temp0 = float4(0, 0, 0, 0); + // mov r1.x, c0.z + temp1.x = float1(-1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // mov r1.z, r1.x + temp1.z = temp1.x; + // mov r1.w, c0.z + temp1.w = float1(-1); + // rep i0 + for (int it1 = 0; it1 < int1(2); ++it1) { + // mov r1.y, r1.w + temp1.y = temp1.w; + // mad r2.xy, r1.yzzw, c12, v0 + temp2.xy = temp1.yz * expr12.xy + texcoord.xy; + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // add r0, r0, r2 + temp0 = temp0 + temp2; + // add r1.w, r1.w, c0.x + temp1.w = temp1.w + float1(2); + // endrep + } + // add r1.x, r1.x, c0.x + temp1.x = temp1.x + float1(2); + // endrep + } + // mul r0, r0, c0.w + temp0 = temp0 * float4(0.25, 0.25, 0.25, 0.25); + // dp3 r1.x, r0, c1.x + temp1.x = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.y, -r1.x, c1.y + temp1.y = -temp1.x + float1(0.11); + // add r1.xz, r1.x, c1.zyww + temp1.xz = temp1.xx + float2(-0.11, 0.0001); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // cmp r1.x, r1.y, c0.y, r1.x + temp1.x = (temp1.y >= 0) ? float1(0) : temp1.x; + // rcp r1.y, r1.z + temp1.y = 1.0f / temp1.z; + // mul r1.x, r1.x, r1.y + temp1.x = temp1.x * temp1.y; + // mul r0.xyz, r0, r1.x + temp0.xyz = temp0.xyz * temp1.xxx; + // mul oC0.xyz, r0, c11 + out_color.xyz = temp0.xyz * ExposureLevel.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// DownsampleInitialPS_Array_Shader_2 Pixel_3_0 Has PRES True +float4 DownsampleInitialPS_Array_Shader_2(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // rcp c12.x, c0.x + expr12.x = 1.0f / (SourceTextureSize.x); + // rcp c12.y, c0.y + expr12.y = 1.0f / (SourceTextureSize.y); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 0, -2, 2 + // def c1, 0.1111111, 0.3, 0.11, -0.0001 + // defi i0, 3, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_2d s0 + // mov r0, c0.y + temp0 = float4(0, 0, 0, 0); + // mov r1.x, c0.z + temp1.x = float1(-2); + // rep i0 + for (int it0 = 0; it0 < int1(3); ++it0) { + // mov r1.z, r1.x + temp1.z = temp1.x; + // mov r1.w, c0.z + temp1.w = float1(-2); + // rep i0 + for (int it1 = 0; it1 < int1(3); ++it1) { + // mov r1.y, r1.w + temp1.y = temp1.w; + // mad r2.xy, r1.yzzw, c12, v0 + temp2.xy = temp1.yz * expr12.xy + texcoord.xy; + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // add r0, r0, r2 + temp0 = temp0 + temp2; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(2); + // endrep + } + // add r1.x, r1.x, c0.w + temp1.x = temp1.x + float1(2); + // endrep + } + // mul r0, r0, c1.x + temp0 = temp0 * float4(0.11111111, 0.11111111, 0.11111111, 0.11111111); + // dp3 r1.x, r0, c1.y + temp1.x = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.y, -r1.x, c1.z + temp1.y = -temp1.x + float1(0.11); + // add r1.xz, r1.x, -c1.zyww + temp1.xz = temp1.xx + float2(-0.11, 0.0001); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // cmp r1.x, r1.y, c0.y, r1.x + temp1.x = (temp1.y >= 0) ? float1(0) : temp1.x; + // rcp r1.y, r1.z + temp1.y = 1.0f / temp1.z; + // mul r1.x, r1.x, r1.y + temp1.x = temp1.x * temp1.y; + // mul r0.xyz, r0, r1.x + temp0.xyz = temp0.xyz * temp1.xxx; + // mul oC0.xyz, r0, c11 + out_color.xyz = temp0.xyz * ExposureLevel.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// DownsampleInitialPS_Array_Shader_3 Pixel_3_0 Has PRES True +float4 DownsampleInitialPS_Array_Shader_3(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // rcp c12.x, c0.x + expr12.x = 1.0f / (SourceTextureSize.x); + // rcp c12.y, c0.y + expr12.y = 1.0f / (SourceTextureSize.y); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 0, -3, 2 + // def c1, 0.0625, 0.3, 0.11, -0.0001 + // defi i0, 4, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_2d s0 + // mov r0, c0.y + temp0 = float4(0, 0, 0, 0); + // mov r1.x, c0.z + temp1.x = float1(-3); + // rep i0 + for (int it0 = 0; it0 < int1(4); ++it0) { + // mov r1.z, r1.x + temp1.z = temp1.x; + // mov r1.w, c0.z + temp1.w = float1(-3); + // rep i0 + for (int it1 = 0; it1 < int1(4); ++it1) { + // mov r1.y, r1.w + temp1.y = temp1.w; + // mad r2.xy, r1.yzzw, c12, v0 + temp2.xy = temp1.yz * expr12.xy + texcoord.xy; + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // add r0, r0, r2 + temp0 = temp0 + temp2; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(2); + // endrep + } + // add r1.x, r1.x, c0.w + temp1.x = temp1.x + float1(2); + // endrep + } + // mul r0, r0, c1.x + temp0 = temp0 * float4(0.0625, 0.0625, 0.0625, 0.0625); + // dp3 r1.x, r0, c1.y + temp1.x = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.y, -r1.x, c1.z + temp1.y = -temp1.x + float1(0.11); + // add r1.xz, r1.x, -c1.zyww + temp1.xz = temp1.xx + float2(-0.11, 0.0001); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // cmp r1.x, r1.y, c0.y, r1.x + temp1.x = (temp1.y >= 0) ? float1(0) : temp1.x; + // rcp r1.y, r1.z + temp1.y = 1.0f / temp1.z; + // mul r1.x, r1.x, r1.y + temp1.x = temp1.x * temp1.y; + // mul r0.xyz, r0, r1.x + temp0.xyz = temp0.xyz * temp1.xxx; + // mul oC0.xyz, r0, c11 + out_color.xyz = temp0.xyz * ExposureLevel.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +// DownsampleInitialPS_Array_Shader_4 Pixel_3_0 Has PRES True +float4 DownsampleInitialPS_Array_Shader_4(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + // Expression_2_1 + // rcp c12.x, c0.x + expr12.x = 1.0f / (SourceTextureSize.x); + // rcp c12.y, c0.y + expr12.y = 1.0f / (SourceTextureSize.y); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0, 0, -4, 2 + // def c1, 0.04, 0.3, 0.11, -0.0001 + // defi i0, 5, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_2d s0 + // mov r0, c0.y + temp0 = float4(0, 0, 0, 0); + // mov r1.x, c0.z + temp1.x = float1(-4); + // rep i0 + for (int it0 = 0; it0 < int1(5); ++it0) { + // mov r1.z, r1.x + temp1.z = temp1.x; + // mov r1.w, c0.z + temp1.w = float1(-4); + // rep i0 + for (int it1 = 0; it1 < int1(5); ++it1) { + // mov r1.y, r1.w + temp1.y = temp1.w; + // mad r2.xy, r1.yzzw, c12, v0 + temp2.xy = temp1.yz * expr12.xy + texcoord.xy; + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // add r0, r0, r2 + temp0 = temp0 + temp2; + // add r1.w, r1.w, c0.w + temp1.w = temp1.w + float1(2); + // endrep + } + // add r1.x, r1.x, c0.w + temp1.x = temp1.x + float1(2); + // endrep + } + // mul r0, r0, c1.x + temp0 = temp0 * float4(0.04, 0.04, 0.04, 0.04); + // dp3 r1.x, r0, c1.y + temp1.x = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.y, -r1.x, c1.z + temp1.y = -temp1.x + float1(0.11); + // add r1.xz, r1.x, -c1.zyww + temp1.xz = temp1.xx + float2(-0.11, 0.0001); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // cmp r1.x, r1.y, c0.y, r1.x + temp1.x = (temp1.y >= 0) ? float1(0) : temp1.x; + // rcp r1.y, r1.z + temp1.y = 1.0f / temp1.z; + // mul r1.x, r1.x, r1.y + temp1.x = temp1.x * temp1.y; + // mul r0.xyz, r0, r1.x + temp0.xyz = temp0.xyz * temp1.xxx; + // mul oC0.xyz, r0, c11 + out_color.xyz = temp0.xyz * ExposureLevel.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // + + return out_color; +} + +PixelShader DownsampleInitialPS_Array[5] = { + compile ps_3_0 DownsampleInitialPS_Array_Shader_0(), // 22 + compile ps_3_0 DownsampleInitialPS_Array_Shader_1(), // 23 + compile ps_3_0 DownsampleInitialPS_Array_Shader_2(), // 24 + compile ps_3_0 DownsampleInitialPS_Array_Shader_3(), // 25 + compile ps_3_0 DownsampleInitialPS_Array_Shader_4(), // 26 +}; +// DownsampleInitialPS_L_Array_Shader_0 Pixel_2_0 Has PRES False +float4 DownsampleInitialPS_L_Array_Shader_0(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0.3, 0.11, -0.11, 0 + // def c1, 0.0001, 0, 0, 0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(SourceTextureSampler, texcoord.xy); + // dp3 r1.w, r0, c0.x + temp1.w = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.x, r1.w, c0.z + temp1.x = temp1.w + float1(-0.11); + // mul r1.x, r1.x, r1.x + temp1.x = temp1.x * temp1.x; + // add r1.y, -r1.w, c0.y + temp1.y = -temp1.w + float1(0.11); + // add r1.z, r1.w, c1.x + temp1.z = temp1.w + float1(0.0001); + // cmp r1.x, r1.y, c0.w, r1.x + temp1.x = (temp1.y >= 0) ? float1(0) : temp1.x; + // rcp r1.y, r1.z + temp1.y = 1.0f / temp1.z; + // mul r1.x, r1.x, r1.y + temp1.x = temp1.x * temp1.y; + // mul r1.xyz, r0, r1.x + temp1.xyz = temp0.xyz * temp1.xxx; + // mul r0.xyz, r1, c11 + temp0.xyz = temp1.xyz * ExposureLevel.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// DownsampleInitialPS_L_Array_Shader_1 Pixel_2_0 Has PRES True +float4 DownsampleInitialPS_L_Array_Shader_1(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (SourceTextureSize.x); + // rcp r0.y, c0.y + temp0.y = 1.0f / (SourceTextureSize.y); + // mul c12.xy, r0.xy, (1, -1) + expr12.xy = temp0.xy * float2(1, -1); + // mul c13.x, r0.x, (-1) + expr13.x = temp0.x * (-1); + // mul c13.y, r0.y, (1) + expr13.y = temp0.y * (1); + // mov c11.xy, r0.xy + expr11.xy = temp0.xy; + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0, 0.0001, 0, 0 + // def c1, 0.25, 0.3, 0.11, -0.11 + // dcl t0.xy + // dcl_2d s0 + // add r0.xy, t0, -c11 + temp0.xy = texcoord.xy + -expr11.xy; + // add r1.xy, t0, c12 + temp1.xy = texcoord.xy + expr12.xy; + // add r2.xy, t0, c13 + temp2.xy = texcoord.xy + expr13.xy; + // add r3.xy, t0, c11 + temp3.xy = texcoord.xy + expr11.xy; + // texld r0, r0, s0 + temp0 = tex2D(SourceTextureSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(SourceTextureSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // texld r3, r3, s0 + temp3 = tex2D(SourceTextureSampler, temp3.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // add r0, r2, r0 + temp0 = temp2 + temp0; + // add r0, r3, r0 + temp0 = temp3 + temp0; + // mul r0, r0, c1.x + temp0 = temp0 * float4(0.25, 0.25, 0.25, 0.25); + // dp3 r1.x, r0, c1.y + temp1.x = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.y, r1.x, c1.w + temp1.y = temp1.x + float1(-0.11); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // add r1.z, -r1.x, c1.z + temp1.z = -temp1.x + float1(0.11); + // add r1.x, r1.x, c0.y + temp1.x = temp1.x + float1(0.0001); + // cmp r1.y, r1.z, c0.x, r1.y + temp1.y = (temp1.z >= 0) ? float1(0) : temp1.y; + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mul r1.xyz, r0, r1.x + temp1.xyz = temp0.xyz * temp1.xxx; + // mul r0.xyz, r1, c14 + temp0.xyz = temp1.xyz * ExposureLevel.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// DownsampleInitialPS_L_Array_Shader_2 Pixel_2_0 Has PRES True +float4 DownsampleInitialPS_L_Array_Shader_2(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 8 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 8 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (SourceTextureSize.x); + // rcp r0.y, c0.y + temp0.y = 1.0f / (SourceTextureSize.y); + // mul c11.xy, (-2, -2), r0.xy + expr11.xy = float2(-2, -2) * temp0.xy; + // mul c12.x, r0.x, (0) + expr12.x = temp0.x * (0); + // mul c12.y, r0.y, (-2) + expr12.y = temp0.y * (-2); + // mul c13.x, r0.x, (2) + expr13.x = temp0.x * (2); + // mul c13.y, r0.y, (-2) + expr13.y = temp0.y * (-2); + // mul c14.xy, r0.xy, (-2, 0) + expr14.xy = temp0.xy * float2(-2, 0); + // mul c15.x, r0.x, (2) + expr15.x = temp0.x * (2); + // mul c15.y, r0.y, (0) + expr15.y = temp0.y * (0); + // mul c16.x, r0.x, (-2) + expr16.x = temp0.x * (-2); + // mul c16.y, r0.y, (2) + expr16.y = temp0.y * (2); + // mul c17.xy, r0.xy, (0, 2) + expr17.xy = temp0.xy * float2(0, 2); + // add c18.xy, r0.xy, r0.xy + expr18.xy = temp0.xy + temp0.xy; + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + // def c0, 0, 0.0001, 0, 0 + // def c1, 0.1111111, 0.3, 0.11, -0.11 + // dcl t0.xy + // dcl_2d s0 + // add r0.xy, t0, c11 + temp0.xy = texcoord.xy + expr11.xy; + // add r1.xy, t0, c12 + temp1.xy = texcoord.xy + expr12.xy; + // add r2.xy, t0, c13 + temp2.xy = texcoord.xy + expr13.xy; + // add r3.xy, t0, c14 + temp3.xy = texcoord.xy + expr14.xy; + // add r4.xy, t0, c15 + temp4.xy = texcoord.xy + expr15.xy; + // add r5.xy, t0, c16 + temp5.xy = texcoord.xy + expr16.xy; + // add r6.xy, t0, c17 + temp6.xy = texcoord.xy + expr17.xy; + // add r7.xy, t0, c18 + temp7.xy = texcoord.xy + expr18.xy; + // texld r0, r0, s0 + temp0 = tex2D(SourceTextureSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(SourceTextureSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // texld r3, r3, s0 + temp3 = tex2D(SourceTextureSampler, temp3.xy); + // texld r8, t0, s0 + temp8 = tex2D(SourceTextureSampler, texcoord.xy); + // texld r4, r4, s0 + temp4 = tex2D(SourceTextureSampler, temp4.xy); + // texld r5, r5, s0 + temp5 = tex2D(SourceTextureSampler, temp5.xy); + // texld r6, r6, s0 + temp6 = tex2D(SourceTextureSampler, temp6.xy); + // texld r7, r7, s0 + temp7 = tex2D(SourceTextureSampler, temp7.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // add r0, r2, r0 + temp0 = temp2 + temp0; + // add r0, r3, r0 + temp0 = temp3 + temp0; + // add r0, r8, r0 + temp0 = temp8 + temp0; + // add r0, r4, r0 + temp0 = temp4 + temp0; + // add r0, r5, r0 + temp0 = temp5 + temp0; + // add r0, r6, r0 + temp0 = temp6 + temp0; + // add r0, r7, r0 + temp0 = temp7 + temp0; + // mul r0, r0, c1.x + temp0 = temp0 * float4(0.11111111, 0.11111111, 0.11111111, 0.11111111); + // dp3 r1.x, r0, c1.y + temp1.x = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.y, r1.x, c1.w + temp1.y = temp1.x + float1(-0.11); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // add r1.z, -r1.x, c1.z + temp1.z = -temp1.x + float1(0.11); + // add r1.x, r1.x, c0.y + temp1.x = temp1.x + float1(0.0001); + // cmp r1.y, r1.z, c0.x, r1.y + temp1.y = (temp1.z >= 0) ? float1(0) : temp1.y; + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mul r1.xyz, r0, r1.x + temp1.xyz = temp0.xyz * temp1.xxx; + // mul r0.xyz, r1, c19 + temp0.xyz = temp1.xyz * ExposureLevel.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// DownsampleInitialPS_L_Array_Shader_3 Pixel_2_0 Has PRES True +float4 DownsampleInitialPS_L_Array_Shader_3(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 15 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 15 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + float4 expr19; + float4 expr20; + float4 expr21; + float4 expr22; + float4 expr23; + float4 expr24; + float4 expr25; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (SourceTextureSize.x); + // rcp r0.y, c0.y + temp0.y = 1.0f / (SourceTextureSize.y); + // mul c11.xy, (-3, -3), r0.xy + expr11.xy = float2(-3, -3) * temp0.xy; + // mul c12.x, r0.x, (-1) + expr12.x = temp0.x * (-1); + // mul c12.y, r0.y, (-3) + expr12.y = temp0.y * (-3); + // mul c13.x, r0.x, (1) + expr13.x = temp0.x * (1); + // mul c13.y, r0.y, (-3) + expr13.y = temp0.y * (-3); + // mul c14.x, r0.x, (3) + expr14.x = temp0.x * (3); + // mul c14.y, r0.y, (-3) + expr14.y = temp0.y * (-3); + // mul c15.xy, r0.xy, (-3, -1) + expr15.xy = temp0.xy * float2(-3, -1); + // mul c17.x, r0.x, (1) + expr17.x = temp0.x * (1); + // mul c17.y, r0.y, (-1) + expr17.y = temp0.y * (-1); + // mul c18.x, r0.x, (3) + expr18.x = temp0.x * (3); + // mul c18.y, r0.y, (-1) + expr18.y = temp0.y * (-1); + // mul c19.x, r0.x, (-3) + expr19.x = temp0.x * (-3); + // mul c19.y, r0.y, (1) + expr19.y = temp0.y * (1); + // mul c20.xy, r0.xy, (-1, 1) + expr20.xy = temp0.xy * float2(-1, 1); + // mul c21.x, r0.x, (3) + expr21.x = temp0.x * (3); + // mul c21.y, r0.y, (1) + expr21.y = temp0.y * (1); + // mul c22.x, r0.x, (-3) + expr22.x = temp0.x * (-3); + // mul c22.y, r0.y, (3) + expr22.y = temp0.y * (3); + // mul c23.x, r0.x, (-1) + expr23.x = temp0.x * (-1); + // mul c23.y, r0.y, (3) + expr23.y = temp0.y * (3); + // mul c24.xy, r0.xy, (1, 3) + expr24.xy = temp0.xy * float2(1, 3); + // mul c25.xy, (3, 3), r0.xy + expr25.xy = float2(3, 3) * temp0.xy; + // mov c16.xy, r0.xy + expr16.xy = temp0.xy; + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9; + // def c0, 0.0625, 0.3, 0.11, -0.11 + // def c1, 0, 0.0001, 0, 0 + // dcl t0.xy + // dcl_2d s0 + // add r0.xy, t0, c11 + temp0.xy = texcoord.xy + expr11.xy; + // add r1.xy, t0, c12 + temp1.xy = texcoord.xy + expr12.xy; + // add r2.xy, t0, c13 + temp2.xy = texcoord.xy + expr13.xy; + // add r3.xy, t0, c14 + temp3.xy = texcoord.xy + expr14.xy; + // add r4.xy, t0, c15 + temp4.xy = texcoord.xy + expr15.xy; + // add r5.xy, t0, -c16 + temp5.xy = texcoord.xy + -expr16.xy; + // add r6.xy, t0, c17 + temp6.xy = texcoord.xy + expr17.xy; + // add r7.xy, t0, c18 + temp7.xy = texcoord.xy + expr18.xy; + // add r8.xy, t0, c19 + temp8.xy = texcoord.xy + expr19.xy; + // add r9.xy, t0, c20 + temp9.xy = texcoord.xy + expr20.xy; + // texld r0, r0, s0 + temp0 = tex2D(SourceTextureSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(SourceTextureSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // texld r3, r3, s0 + temp3 = tex2D(SourceTextureSampler, temp3.xy); + // texld r4, r4, s0 + temp4 = tex2D(SourceTextureSampler, temp4.xy); + // texld r5, r5, s0 + temp5 = tex2D(SourceTextureSampler, temp5.xy); + // texld r6, r6, s0 + temp6 = tex2D(SourceTextureSampler, temp6.xy); + // texld r7, r7, s0 + temp7 = tex2D(SourceTextureSampler, temp7.xy); + // texld r8, r8, s0 + temp8 = tex2D(SourceTextureSampler, temp8.xy); + // texld r9, r9, s0 + temp9 = tex2D(SourceTextureSampler, temp9.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // add r0, r2, r0 + temp0 = temp2 + temp0; + // add r0, r3, r0 + temp0 = temp3 + temp0; + // add r0, r4, r0 + temp0 = temp4 + temp0; + // add r0, r5, r0 + temp0 = temp5 + temp0; + // add r0, r6, r0 + temp0 = temp6 + temp0; + // add r0, r7, r0 + temp0 = temp7 + temp0; + // add r0, r8, r0 + temp0 = temp8 + temp0; + // add r0, r9, r0 + temp0 = temp9 + temp0; + // add r1.xy, t0, c16 + temp1.xy = texcoord.xy + expr16.xy; + // add r2.xy, t0, c21 + temp2.xy = texcoord.xy + expr21.xy; + // add r3.xy, t0, c22 + temp3.xy = texcoord.xy + expr22.xy; + // add r4.xy, t0, c23 + temp4.xy = texcoord.xy + expr23.xy; + // add r5.xy, t0, c24 + temp5.xy = texcoord.xy + expr24.xy; + // add r6.xy, t0, c25 + temp6.xy = texcoord.xy + expr25.xy; + // texld r1, r1, s0 + temp1 = tex2D(SourceTextureSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // texld r3, r3, s0 + temp3 = tex2D(SourceTextureSampler, temp3.xy); + // texld r4, r4, s0 + temp4 = tex2D(SourceTextureSampler, temp4.xy); + // texld r5, r5, s0 + temp5 = tex2D(SourceTextureSampler, temp5.xy); + // texld r6, r6, s0 + temp6 = tex2D(SourceTextureSampler, temp6.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // add r0, r2, r0 + temp0 = temp2 + temp0; + // add r0, r3, r0 + temp0 = temp3 + temp0; + // add r0, r4, r0 + temp0 = temp4 + temp0; + // add r0, r5, r0 + temp0 = temp5 + temp0; + // add r0, r6, r0 + temp0 = temp6 + temp0; + // mul r0, r0, c0.x + temp0 = temp0 * float4(0.0625, 0.0625, 0.0625, 0.0625); + // dp3 r1.x, r0, c0.y + temp1.x = dot(temp0.xyz, float3(0.3, 0.3, 0.3)); + // add r1.y, r1.x, c0.w + temp1.y = temp1.x + float1(-0.11); + // mul r1.y, r1.y, r1.y + temp1.y = temp1.y * temp1.y; + // add r1.z, -r1.x, c0.z + temp1.z = -temp1.x + float1(0.11); + // add r1.x, r1.x, c1.y + temp1.x = temp1.x + float1(0.0001); + // cmp r1.y, r1.z, c1.x, r1.y + temp1.y = (temp1.z >= 0) ? float1(0) : temp1.y; + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // mul r1.x, r1.y, r1.x + temp1.x = temp1.y * temp1.x; + // mul r1.xyz, r0, r1.x + temp1.xyz = temp0.xyz * temp1.xxx; + // mul r0.xyz, r1, c26 + temp0.xyz = temp1.xyz * ExposureLevel.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader DownsampleInitialPS_L_Array[4] = { + compile ps_2_0 DownsampleInitialPS_L_Array_Shader_0(), // 29 + compile ps_2_0 DownsampleInitialPS_L_Array_Shader_1(), // 30 + compile ps_2_0 DownsampleInitialPS_L_Array_Shader_2(), // 31 + compile ps_2_0 DownsampleInitialPS_L_Array_Shader_3(), // 32 +}; +texture DebugTextureSampler ; // 51 +sampler2D DebugTextureSamplerSampler = +sampler_state +{ + Texture = ; // 53 + MinFilter = 1; + MagFilter = 1; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +// DebugPattern_PixelShader10 Pixel_2_0 Has PRES False +float4 DebugPattern_PixelShader10(float texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 2.2, 0, 0, 0 + // dcl t0.x + // log r0.w, t0.x + temp0.w = log2(texcoord.x); + // mul r0.x, r0.w, c0.x + temp0.x = temp0.w * float1(2.2); + // exp r0, r0.x + temp0 = exp2(temp0.x); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// DebugPattern_VertexShader11 Vertex_2_0 Has PRES False +struct DebugPattern_VertexShader11_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct DebugPattern_VertexShader11_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; +}; + +DebugPattern_VertexShader11_Output DebugPattern_VertexShader11(DebugPattern_VertexShader11_Input i) +{ + DebugPattern_VertexShader11_Output o; + // def c0, 1, 0.25, 0, 0.75 + // dcl_position v0 + // dcl_texcoord v1 + // mul oT0.xy, v1, c0 + o.texcoord = i.texcoord * float4(1, 0.25, 0, 0.75); + // mad oPos.xy, v0, c0, c0.zwzw + o.position.xy = i.position.xy * float2(1, 0.25) + float2(0, 0.75); + // mov oPos.zw, c0.xyzx + o.position.zw = float2(0, 1); + // + + return o; +} + +// DebugDisplay_PixelShader12 Pixel_2_0 Has PRES False +float4 DebugDisplay_PixelShader12(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DebugTextureSamplerSampler, texcoord.xy); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// DebugDisplay_VertexShader13 Vertex_2_0 Has PRES False +struct DebugDisplay_VertexShader13_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct DebugDisplay_VertexShader13_Output +{ + float2 texcoord : TEXCOORD; + float4 position : POSITION; +}; + +DebugDisplay_VertexShader13_Output DebugDisplay_VertexShader13(DebugDisplay_VertexShader13_Input i) +{ + DebugDisplay_VertexShader13_Output o; + // def c0, 0.5, 1, -0.5, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mul oT0.xy, v1, c0 + o.texcoord = i.texcoord * float4(0.5, 1, -0.5, 0); + // mad oPos.xy, v0, c0, c0.zwzw + o.position.xy = i.position.xy * float2(0.5, 1) + float2(-0.5, 0); + // mov oPos.zw, c0.xywy + o.position.zw = float2(0, 1); + // + + return o; +} + +// Copy_PixelShader14 Pixel_2_0 Has PRES False +float4 Copy_PixelShader14(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Copy_VertexShader15 Vertex_2_0 Has PRES False +struct Copy_VertexShader15_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Copy_VertexShader15_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Copy_VertexShader15_Output Copy_VertexShader15(Copy_VertexShader15_Input i) +{ + Copy_VertexShader15_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// AccumulateFinal_M_PixelShader16 Pixel_2_0 Has PRES False +float4 AccumulateFinal_M_PixelShader16(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0.4545455, 0, 0 + // dcl t0.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // texld r1, t0, s1 + temp1 = tex2D(SourceTextureSampler, texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r2.x + temp0.x = exp2(temp2.x); + // exp r0.y, r2.y + temp0.y = exp2(temp2.y); + // exp r0.z, r2.z + temp0.z = exp2(temp2.z); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mad r0, r1, c11.x, r0 + temp0 = temp1 * BloomIntensity.x + temp0; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.y + temp1.xyz = temp1.xyz * float3(0.45454547, 0.45454547, 0.45454547); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AccumulateFinal_M_VertexShader17 Vertex_2_0 Has PRES False +struct AccumulateFinal_M_VertexShader17_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct AccumulateFinal_M_VertexShader17_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +AccumulateFinal_M_VertexShader17_Output AccumulateFinal_M_VertexShader17(AccumulateFinal_M_VertexShader17_Input i) +{ + AccumulateFinal_M_VertexShader17_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// AccumulateFinal_PixelShader18 Pixel_2_0 Has PRES False +float4 AccumulateFinal_PixelShader18(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t0.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // texld r1, t0, s1 + temp1 = tex2D(SourceTextureSampler, texcoord.xy); + // mad r0, r1, c11.x, r0 + temp0 = temp1 * BloomIntensity.x + temp0; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AccumulateFinal_VertexShader19 Vertex_2_0 Has PRES False +struct AccumulateFinal_VertexShader19_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct AccumulateFinal_VertexShader19_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +AccumulateFinal_VertexShader19_Output AccumulateFinal_VertexShader19(AccumulateFinal_VertexShader19_Input i) +{ + AccumulateFinal_VertexShader19_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Accumulate_M_PixelShader20 Pixel_2_0 Has PRES False +float4 Accumulate_M_PixelShader20(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0.4545455, 0, 0 + // dcl t0.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // texld r1, t0, s1 + temp1 = tex2D(SourceTextureSampler, texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r2.x + temp0.x = exp2(temp2.x); + // exp r0.y, r2.y + temp0.y = exp2(temp2.y); + // exp r0.z, r2.z + temp0.z = exp2(temp2.z); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.y + temp1.xyz = temp1.xyz * float3(0.45454547, 0.45454547, 0.45454547); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Accumulate_M_VertexShader21 Vertex_2_0 Has PRES False +struct Accumulate_M_VertexShader21_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Accumulate_M_VertexShader21_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Accumulate_M_VertexShader21_Output Accumulate_M_VertexShader21(Accumulate_M_VertexShader21_Input i) +{ + Accumulate_M_VertexShader21_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Accumulate_PixelShader22 Pixel_2_0 Has PRES False +float4 Accumulate_PixelShader22(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t0.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // texld r1, t0, s1 + temp1 = tex2D(SourceTextureSampler, texcoord.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Accumulate_VertexShader23 Vertex_2_0 Has PRES False +struct Accumulate_VertexShader23_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Accumulate_VertexShader23_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Accumulate_VertexShader23_Output Accumulate_VertexShader23(Accumulate_VertexShader23_Input i) +{ + Accumulate_VertexShader23_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// BlurGaussian11x11V_PixelShader24 Pixel_2_0 Has PRES True +float4 BlurGaussian11x11V_PixelShader24(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (SourceTextureSize.x); + // rcp r0.y, c0.y + temp0.y = 1.0f / (SourceTextureSize.y); + // mul c11.xy, r0.xy, (0.5, -0.5) + expr11.xy = temp0.xy * float2(0.5, -0.5); + // mul c12.xy, r0.xy, (0, 3.55) + expr12.xy = temp0.xy * float2(0, 3.55); + // mul c13.xy, r0.xy, (0, 1.65) + expr13.xy = temp0.xy * float2(0, 1.65); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 120, 10, 252, 0.001953125 + // dcl t0.xy + // dcl_2d s0 + // add r0.xy, t0, c11 + temp0.xy = texcoord.xy + expr11.xy; + // add r1.xy, r0, -c13 + temp1.xy = temp0.xy + -expr13.xy; + // add r2.xy, r0, -c12 + temp2.xy = temp0.xy + -expr12.xy; + // add r3.xy, r0, c13 + temp3.xy = temp0.xy + expr13.xy; + // add r4.xy, r0, c12 + temp4.xy = temp0.xy + expr12.xy; + // texld r1, r1, s0 + temp1 = tex2D(SourceTextureSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // texld r0, r0, s0 + temp0 = tex2D(SourceTextureSampler, temp0.xy); + // texld r3, r3, s0 + temp3 = tex2D(SourceTextureSampler, temp3.xy); + // texld r4, r4, s0 + temp4 = tex2D(SourceTextureSampler, temp4.xy); + // mul r1, r1, c0.x + temp1 = temp1 * float4(120, 120, 120, 120); + // mad r1, r2, c0.y, r1 + temp1 = temp2 * float4(10, 10, 10, 10) + temp1; + // mad r0, r0, c0.z, r1 + temp0 = temp0 * float4(252, 252, 252, 252) + temp1; + // mad r0, r3, c0.x, r0 + temp0 = temp3 * float4(120, 120, 120, 120) + temp0; + // mad r0, r4, c0.y, r0 + temp0 = temp4 * float4(10, 10, 10, 10) + temp0; + // mul r0, r0, c0.w + temp0 = temp0 * float4(0.001953125, 0.001953125, 0.001953125, 0.001953125); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// BlurGaussian11x11V_VertexShader25 Vertex_2_0 Has PRES False +struct BlurGaussian11x11V_VertexShader25_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct BlurGaussian11x11V_VertexShader25_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +BlurGaussian11x11V_VertexShader25_Output BlurGaussian11x11V_VertexShader25(BlurGaussian11x11V_VertexShader25_Input i) +{ + BlurGaussian11x11V_VertexShader25_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// BlurGaussian11x11U_PixelShader26 Pixel_2_0 Has PRES True +float4 BlurGaussian11x11U_PixelShader26(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (SourceTextureSize.x); + // rcp r0.y, c0.y + temp0.y = 1.0f / (SourceTextureSize.y); + // mul c11.xy, r0.xy, (-0.5, 0.5) + expr11.xy = temp0.xy * float2(-0.5, 0.5); + // mul c12.xy, r0.xy, (3.55, 0) + expr12.xy = temp0.xy * float2(3.55, 0); + // mul c13.xy, r0.xy, (1.65, 0) + expr13.xy = temp0.xy * float2(1.65, 0); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 120, 10, 252, 0.001953125 + // dcl t0.xy + // dcl_2d s0 + // add r0.xy, t0, c11 + temp0.xy = texcoord.xy + expr11.xy; + // add r1.xy, r0, -c13 + temp1.xy = temp0.xy + -expr13.xy; + // add r2.xy, r0, -c12 + temp2.xy = temp0.xy + -expr12.xy; + // add r3.xy, r0, c13 + temp3.xy = temp0.xy + expr13.xy; + // add r4.xy, r0, c12 + temp4.xy = temp0.xy + expr12.xy; + // texld r1, r1, s0 + temp1 = tex2D(SourceTextureSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // texld r0, r0, s0 + temp0 = tex2D(SourceTextureSampler, temp0.xy); + // texld r3, r3, s0 + temp3 = tex2D(SourceTextureSampler, temp3.xy); + // texld r4, r4, s0 + temp4 = tex2D(SourceTextureSampler, temp4.xy); + // mul r1, r1, c0.x + temp1 = temp1 * float4(120, 120, 120, 120); + // mad r1, r2, c0.y, r1 + temp1 = temp2 * float4(10, 10, 10, 10) + temp1; + // mad r0, r0, c0.z, r1 + temp0 = temp0 * float4(252, 252, 252, 252) + temp1; + // mad r0, r3, c0.x, r0 + temp0 = temp3 * float4(120, 120, 120, 120) + temp0; + // mad r0, r4, c0.y, r0 + temp0 = temp4 * float4(10, 10, 10, 10) + temp0; + // mul r0, r0, c0.w + temp0 = temp0 * float4(0.001953125, 0.001953125, 0.001953125, 0.001953125); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// BlurGaussian11x11U_VertexShader27 Vertex_2_0 Has PRES False +struct BlurGaussian11x11U_VertexShader27_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct BlurGaussian11x11U_VertexShader27_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +BlurGaussian11x11U_VertexShader27_Output BlurGaussian11x11U_VertexShader27(BlurGaussian11x11U_VertexShader27_Input i) +{ + BlurGaussian11x11U_VertexShader27_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Downsample4x4_PixelShader28 Pixel_2_0 Has PRES True +float4 Downsample4x4_PixelShader28(float2 texcoord : TEXCOORD) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + float4 temp0; + // Expression_2_1 + // rcp r0.x, c0.x + temp0.x = 1.0f / (SourceTextureSize.x); + // rcp r0.y, c0.y + temp0.y = 1.0f / (SourceTextureSize.y); + // mul c12.xy, r0.xy, (1, -1) + expr12.xy = temp0.xy * float2(1, -1); + // mul c13.x, r0.x, (-1) + expr13.x = temp0.x * (-1); + // mul c13.y, r0.y, (1) + expr13.y = temp0.y * (1); + // mov c11.xy, r0.xy + expr11.xy = temp0.xy; + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 0.25, 0, 0, 0 + // dcl t0.xy + // dcl_2d s0 + // add r0.xy, t0, -c11 + temp0.xy = texcoord.xy + -expr11.xy; + // add r1.xy, t0, c12 + temp1.xy = texcoord.xy + expr12.xy; + // add r2.xy, t0, c13 + temp2.xy = texcoord.xy + expr13.xy; + // add r3.xy, t0, c11 + temp3.xy = texcoord.xy + expr11.xy; + // texld r0, r0, s0 + temp0 = tex2D(SourceTextureSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(SourceTextureSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(SourceTextureSampler, temp2.xy); + // texld r3, r3, s0 + temp3 = tex2D(SourceTextureSampler, temp3.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // add r0, r2, r0 + temp0 = temp2 + temp0; + // add r0, r3, r0 + temp0 = temp3 + temp0; + // mul r0, r0, c0.x + temp0 = temp0 * float4(0.25, 0.25, 0.25, 0.25); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Downsample4x4_VertexShader29 Vertex_2_0 Has PRES False +struct Downsample4x4_VertexShader29_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Downsample4x4_VertexShader29_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Downsample4x4_VertexShader29_Output Downsample4x4_VertexShader29(Downsample4x4_VertexShader29_Input i) +{ + Downsample4x4_VertexShader29_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// DownsampleInitial_L_Expression30 Expression_2_0 Has PRES False +float DownsampleInitial_L_Expression30() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // rcp r0.x, c1.x + temp0.x = 1.0f / (TargetTextureSize.x); + // mul r1.x, r0.x, c0.x + temp1.x = temp0.x * SourceTextureSize.x; + // mul r0.x, r1.x, (0.5) + temp0.x = temp1.x * (0.5); + // add r1.x, r0.x, (-0.5) + temp1.x = temp0.x + (-0.5); + // neg r0.x, r1.x + temp0.x = -temp1.x; + // lt r2.x, r1.x, r0.x + temp2.x = temp1.x < temp0.x; + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // neg r1.y, r0.x + temp1.y = -temp0.x; + // lt r2.y, r1.y, r0.x + temp2.y = temp1.y < temp0.x; + // add r0.x, r1.x, r1.y + temp0.x = temp1.x + temp1.y; + // mul r0.y, r2.x, r2.y + temp0.y = temp2.x * temp2.y; + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // max r0.x, r1.x, (0) + temp0.x = max(temp1.x, (0)); + // min c0.x, r0.x, (3) + expr0.x = min(temp0.x, (3)); + return expr0; +} + +// DownsampleInitial_L_VertexShader31 Vertex_2_0 Has PRES False +struct DownsampleInitial_L_VertexShader31_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct DownsampleInitial_L_VertexShader31_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +DownsampleInitial_L_VertexShader31_Output DownsampleInitial_L_VertexShader31(DownsampleInitial_L_VertexShader31_Input i) +{ + DownsampleInitial_L_VertexShader31_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xy, v0 + o.position.xy = i.position.xy; + // mov oPos.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// DownsampleInitial_Expression32 Expression_2_0 Has PRES False +float DownsampleInitial_Expression32() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // rcp r0.x, c1.x + temp0.x = 1.0f / (TargetTextureSize.x); + // mul r1.x, r0.x, c0.x + temp1.x = temp0.x * SourceTextureSize.x; + // mul r0.x, r1.x, (0.5) + temp0.x = temp1.x * (0.5); + // add r1.x, r0.x, (-0.5) + temp1.x = temp0.x + (-0.5); + // neg r0.x, r1.x + temp0.x = -temp1.x; + // lt r2.x, r1.x, r0.x + temp2.x = temp1.x < temp0.x; + // frc r0.x, r1.x + temp0.x = frac(temp1.x); + // neg r1.y, r0.x + temp1.y = -temp0.x; + // lt r2.y, r1.y, r0.x + temp2.y = temp1.y < temp0.x; + // add r0.x, r1.x, r1.y + temp0.x = temp1.x + temp1.y; + // mul r0.y, r2.x, r2.y + temp0.y = temp2.x * temp2.y; + // add r1.x, r0.x, r0.y + temp1.x = temp0.x + temp0.y; + // max r0.x, r1.x, (0) + temp0.x = max(temp1.x, (0)); + // min c0.x, r0.x, (4) + expr0.x = min(temp0.x, (4)); + return expr0; +} + +// DownsampleInitial_VertexShader33 Vertex_3_0 Has PRES False +struct DownsampleInitial_VertexShader33_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct DownsampleInitial_VertexShader33_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +DownsampleInitial_VertexShader33_Output DownsampleInitial_VertexShader33(DownsampleInitial_VertexShader33_Input i) +{ + DownsampleInitial_VertexShader33_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // mov o0.xy, v0 + o.position.xy = i.position.xy; + // mov o0.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique DownsampleInitial +{ + pass p0 + { + VertexShader = compile vs_3_0 DownsampleInitial_VertexShader33(); // 27 + PixelShader = DownsampleInitialPS_Array[DownsampleInitial_Expression32()]; // 28 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique DownsampleInitial_L +{ + pass p0 + { + VertexShader = compile vs_2_0 DownsampleInitial_L_VertexShader31(); // 33 + PixelShader = DownsampleInitialPS_L_Array[DownsampleInitial_L_Expression30()]; // 34 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Downsample4x4 +{ + pass p0 + { + VertexShader = compile vs_2_0 Downsample4x4_VertexShader29(); // 35 + PixelShader = compile ps_2_0 Downsample4x4_PixelShader28(); // 36 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique BlurGaussian11x11U +{ + pass p0 + { + VertexShader = compile vs_2_0 BlurGaussian11x11U_VertexShader27(); // 37 + PixelShader = compile ps_2_0 BlurGaussian11x11U_PixelShader26(); // 38 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique BlurGaussian11x11V +{ + pass p0 + { + VertexShader = compile vs_2_0 BlurGaussian11x11V_VertexShader25(); // 39 + PixelShader = compile ps_2_0 BlurGaussian11x11V_PixelShader24(); // 40 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Accumulate +{ + pass p0 + { + VertexShader = compile vs_2_0 Accumulate_VertexShader23(); // 41 + PixelShader = compile ps_2_0 Accumulate_PixelShader22(); // 42 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Accumulate_M +{ + pass p0 + { + VertexShader = compile vs_2_0 Accumulate_M_VertexShader21(); // 43 + PixelShader = compile ps_2_0 Accumulate_M_PixelShader20(); // 44 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique AccumulateFinal +{ + pass p0 + { + VertexShader = compile vs_2_0 AccumulateFinal_VertexShader19(); // 45 + PixelShader = compile ps_2_0 AccumulateFinal_PixelShader18(); // 46 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique AccumulateFinal_M +{ + pass p0 + { + VertexShader = compile vs_2_0 AccumulateFinal_M_VertexShader17(); // 47 + PixelShader = compile ps_2_0 AccumulateFinal_M_PixelShader16(); // 48 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Copy +{ + pass p0 + { + VertexShader = compile vs_2_0 Copy_VertexShader15(); // 49 + PixelShader = compile ps_2_0 Copy_PixelShader14(); // 50 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique DebugDisplay +{ + pass p0 + { + VertexShader = compile vs_2_0 DebugDisplay_VertexShader13(); // 56 + PixelShader = compile ps_2_0 DebugDisplay_PixelShader12(); // 57 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique DebugPattern +{ + pass p0 + { + VertexShader = compile vs_2_0 DebugPattern_VertexShader11(); // 58 + PixelShader = compile ps_2_0 DebugPattern_PixelShader10(); // 59 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/postfx_distortion.fx b/postfx_distortion.fx new file mode 100644 index 0000000..3fb252f --- /dev/null +++ b/postfx_distortion.fx @@ -0,0 +1,189 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +bool IsHdrEnabled ; +texture FrameBufferSampler ; // 3 +sampler2D FrameBufferSamplerSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 5 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +texture DistortionOffsetSampler ; // 8 +sampler2D DistortionOffsetSamplerSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 10 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +// Default_M_PixelShader1 Pixel_2_0 Has PRES False +float4 Default_M_PixelShader1(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 2, -0.9960784, 0.08, 0 + // dcl t0.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s1 + temp0 = tex2D(DistortionOffsetSamplerSampler, texcoord.xy); + // mad r0.xy, r0, c0.x, c0.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-0.99607843, -0.99607843); + // mad r0.xy, r0, c0.z, t0 + temp0.xy = temp0.xy * float2(0.08, 0.08) + texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, temp0.xy); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_M_VertexShader2 Vertex_2_0 Has PRES False +struct Default_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Default_M_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i) +{ + Default_M_VertexShader2_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Default_PixelShader3 Pixel_2_0 Has PRES False +float4 Default_PixelShader3(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 2, -0.9960784, 0.08, 0 + // dcl t0.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s1 + temp0 = tex2D(DistortionOffsetSamplerSampler, texcoord.xy); + // mad r0.xy, r0, c0.x, c0.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-0.99607843, -0.99607843); + // mad r0.xy, r0, c0.z, t0 + temp0.xy = temp0.xy * float2(0.08, 0.08) + texcoord.xy; + // texld r0, r0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, temp0.xy); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_VertexShader4 Vertex_2_0 Has PRES False +struct Default_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Default_VertexShader4_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i) +{ + Default_VertexShader4_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader4(); // 13 + PixelShader = compile ps_2_0 Default_PixelShader3(); // 14 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + FillMode = 3; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 15 + PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 16 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + FillMode = 3; + } +} + +technique Default_L +{ +} + diff --git a/postfx_lineardepth.fx b/postfx_lineardepth.fx new file mode 100644 index 0000000..a09724c --- /dev/null +++ b/postfx_lineardepth.fx @@ -0,0 +1,116 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +column_major float4x4 ProjectionI : ProjectionInverse : register(ps_2_0, c11); +texture DepthBufferSampler ; // 2 +sampler2D DepthBufferSamplerSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + MinFilter = 1; + MagFilter = 1; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +// LinearDepth_PixelShader1 Pixel_2_0 Has PRES False +float4 LinearDepth_PixelShader1(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, -1, 1, 0, 0 + // def c1, 0, 2, -2, 1 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DepthBufferSamplerSampler, texcoord.xy); + // mov r0.z, r0.x + temp0.z = temp0.x; + // mov r1.yz, c1 + temp1.yz = float2(2, -2); + // mad r0.xy, t0, r1.yzxw, c0 + temp0.xy = texcoord.xy * temp1.yz + float2(-1, 1); + // mov r0.w, c1.w + temp0.w = float1(1); + // dp4 r1.x, r0, c14 + temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33)); + // dp4 r0.x, r0, c13 + temp0.x = dot(temp0, (ProjectionI._m02_m12_m22_m32)); + // rcp r0.y, r1.x + temp0.y = 1.0f / temp1.x; + // mul r0.xyz, r0.x, r0.y + temp0.xyz = temp0.x * temp0.y; + // mov r0.w, c1.w + temp0.w = float1(1); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// LinearDepth_VertexShader2 Vertex_2_0 Has PRES False +struct LinearDepth_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct LinearDepth_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +LinearDepth_VertexShader2_Output LinearDepth_VertexShader2(LinearDepth_VertexShader2_Input i) +{ + LinearDepth_VertexShader2_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique LinearDepth +{ + pass p0 + { + VertexShader = compile vs_2_0 LinearDepth_VertexShader2(); // 7 + PixelShader = compile ps_2_0 LinearDepth_PixelShader1(); // 8 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/postfx_lookuptable.fx b/postfx_lookuptable.fx new file mode 100644 index 0000000..fb99ba1 --- /dev/null +++ b/postfx_lookuptable.fx @@ -0,0 +1,354 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +bool IsHdrEnabled ; +texture FrameBufferSampler ; // 3 +sampler2D FrameBufferSamplerSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 5 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +texture LookupTexture ; // 8 +sampler3D LookupTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 10 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +texture FilmTonemappingLookupTexture ; // 13 +sampler2D FilmTonemappingLookupTextureSampler = +sampler_state +{ + Texture = ; // 15 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float4 BlendFactor : register(ps_2_0, c11) = { 1, 1, 1, 1 }; +float3 ExposureLevel : register(ps_2_0, c12) = { 1, 1, 1 }; +// ResolveOnly_M_PixelShader1 Pixel_2_0 Has PRES False +float4 ResolveOnly_M_PixelShader1(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // mul r0.xyz, r0, c11 + temp0.xyz = temp0.xyz * ExposureLevel.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// ResolveOnly_M_VertexShader2 Vertex_2_0 Has PRES False +struct ResolveOnly_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct ResolveOnly_M_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +ResolveOnly_M_VertexShader2_Output ResolveOnly_M_VertexShader2(ResolveOnly_M_VertexShader2_Input i) +{ + ResolveOnly_M_VertexShader2_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// ResolveOnly_PixelShader3 Pixel_2_0 Has PRES False +float4 ResolveOnly_PixelShader3(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1, temp2, temp3; + // def c0, 6, 0.1666667, 1, 0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // mul r1.xyz, r0, c11 + temp1.xyz = temp0.xyz * ExposureLevel.xyz; + // mul r2.xyz, r1, c0.x + temp2.xyz = temp1.xyz * float3(6, 6, 6); + // mad r3.xyz, r1, c0.y, c0.z + temp3.xyz = temp1.xyz * float3(0.16666667, 0.16666667, 0.16666667) + float3(1, 1, 1); + // mad r1.xyz, r1, c0.x, c0.z + temp1.xyz = temp1.xyz * float3(6, 6, 6) + float3(1, 1, 1); + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // rcp r3.x, r1.x + temp3.x = 1.0f / temp1.x; + // rcp r3.y, r1.y + temp3.y = 1.0f / temp1.y; + // rcp r3.z, r1.z + temp3.z = 1.0f / temp1.z; + // mul r0.xyz, r2, r3 + temp0.xyz = temp2.xyz * temp3.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// ResolveOnly_VertexShader4 Vertex_2_0 Has PRES False +struct ResolveOnly_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct ResolveOnly_VertexShader4_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +ResolveOnly_VertexShader4_Output ResolveOnly_VertexShader4(ResolveOnly_VertexShader4_Input i) +{ + ResolveOnly_VertexShader4_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Default_M_PixelShader5 Pixel_2_0 Has PRES False +float4 Default_M_PixelShader5(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl t0.xy + // dcl_2d s0 + // dcl_volume s1 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * ExposureLevel.xyz; + // texld r1, r0, s1 + temp1 = tex3D(LookupTextureSampler, temp0.xyz); + // lrp r2, c11.x, r1, r0 + temp2 = lerp(temp0, temp1, BlendFactor.x); + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// Default_M_VertexShader6 Vertex_2_0 Has PRES False +struct Default_M_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Default_M_VertexShader6_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Default_M_VertexShader6_Output Default_M_VertexShader6(Default_M_VertexShader6_Input i) +{ + Default_M_VertexShader6_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Default_PixelShader7 Pixel_2_0 Has PRES False +float4 Default_PixelShader7(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 6, 0.1666667, 1, 0 + // dcl t0.xy + // dcl_2d s0 + // dcl_volume s1 + // texld r0, t0, s0 + temp0 = tex2D(FrameBufferSamplerSampler, texcoord.xy); + // mul r1.xyz, r0, c12 + temp1.xyz = temp0.xyz * ExposureLevel.xyz; + // mul r2.xyz, r1, c0.x + temp2.xyz = temp1.xyz * float3(6, 6, 6); + // mad r3.xyz, r1, c0.y, c0.z + temp3.xyz = temp1.xyz * float3(0.16666667, 0.16666667, 0.16666667) + float3(1, 1, 1); + // mad r1.xyz, r1, c0.x, c0.z + temp1.xyz = temp1.xyz * float3(6, 6, 6) + float3(1, 1, 1); + // mul r2.xyz, r2, r3 + temp2.xyz = temp2.xyz * temp3.xyz; + // rcp r3.x, r1.x + temp3.x = 1.0f / temp1.x; + // rcp r3.y, r1.y + temp3.y = 1.0f / temp1.y; + // rcp r3.z, r1.z + temp3.z = 1.0f / temp1.z; + // mul r0.xyz, r2, r3 + temp0.xyz = temp2.xyz * temp3.xyz; + // texld r1, r0, s1 + temp1 = tex3D(LookupTextureSampler, temp0.xyz); + // lrp r2, c11.x, r1, r0 + temp2 = lerp(temp0, temp1, BlendFactor.x); + // mov oC0, r2 + out_color = temp2; + // + + return out_color; +} + +// Default_VertexShader8 Vertex_2_0 Has PRES False +struct Default_VertexShader8_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Default_VertexShader8_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Default_VertexShader8_Output Default_VertexShader8(Default_VertexShader8_Input i) +{ + Default_VertexShader8_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader8(); // 20 + PixelShader = compile ps_2_0 Default_PixelShader7(); // 21 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader6(); // 22 + PixelShader = compile ps_2_0 Default_M_PixelShader5(); // 23 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique ResolveOnly +{ + pass P0 + { + VertexShader = compile vs_2_0 ResolveOnly_VertexShader4(); // 24 + PixelShader = compile ps_2_0 ResolveOnly_PixelShader3(); // 25 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique ResolveOnly_M +{ + pass P0 + { + VertexShader = compile vs_2_0 ResolveOnly_M_VertexShader2(); // 26 + PixelShader = compile ps_2_0 ResolveOnly_M_PixelShader1(); // 27 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/postfx_msaa.fx b/postfx_msaa.fx new file mode 100644 index 0000000..bf71334 --- /dev/null +++ b/postfx_msaa.fx @@ -0,0 +1,197 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +bool IsHdrEnabled ; +float2 ScreenInfo ; +float4 CameraInfo = { -30.23873, 1.007958, 30, 0.000265252 }; +texture FrameBufferSampler ; // 5 +sampler2D FrameBufferSamplerSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 7 + AddressU = 3; + AddressV = 3; + MipFilter = 0; + MinFilter = 2; + MagFilter = 2; +}; +texture DepthBufferSampler ; // 10 +sampler2D DepthBufferSamplerSampler = +sampler_state +{ + Texture = ; // 12 + AddressU = 3; + AddressV = 3; + MipFilter = 0; + MinFilter = 1; + MagFilter = 1; +}; +// AntiAlias_PixelShader1 Pixel_3_0 Has PRES False +struct AntiAlias_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +float4 AntiAlias_PixelShader1(AntiAlias_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 0.3, 0.59, 0.11, 0.02 + // def c1, 100, 0.2, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1 v1 + // dcl_texcoord2 v2 + // dcl_2d s0 + // texld r0, v1, s0 + temp0 = tex2D(FrameBufferSamplerSampler, i.texcoord1.xy); + // texld r1, v1.zwzw, s0 + temp1 = tex2D(FrameBufferSamplerSampler, i.texcoord1.zw); + // add r2.xyz, r0, -r1 + temp2.xyz = temp0.xyz + -temp1.xyz; + // dp3 r2.x, r2_abs, c0 + temp2.x = dot(abs(temp2).xyz, float3(0.3, 0.59, 0.11)); + // texld r3, v2, s0 + temp3 = tex2D(FrameBufferSamplerSampler, i.texcoord2.xy); + // texld r4, v2.zwzw, s0 + temp4 = tex2D(FrameBufferSamplerSampler, i.texcoord2.zw); + // add r2.yzw, r3.xxyz, -r4.xxyz + temp2.yzw = temp3.xyz + -temp4.xyz; + // add r0, r0, r3 + temp0 = temp0 + temp3; + // dp3 r2.y, r2_abs.yzww, c0 + temp2.y = dot(abs(temp2).yzw, float3(0.3, 0.59, 0.11)); + // max r3.x, r2.x, r2.y + temp3.x = max(temp2.x, temp2.y); + // add r2.x, r3.x, -c0.w + temp2.x = temp3.x + float1(-0.02); + // add r2.y, -r3.x, c0.w + temp2.y = -temp3.x + float1(0.02); + // mul_sat r2.x, r2.x, c1.x + temp2.x = saturate(temp2.x * float1(100)); + // add r0, r1, r0 + temp0 = temp1 + temp0; + // add r0, r4, r0 + temp0 = temp4 + temp0; + // texld r1, v0, s0 + temp1 = tex2D(FrameBufferSamplerSampler, i.texcoord.xy); + // lrp r3, c1.y, r0, -r1 + temp3 = lerp(-temp1, temp0, float4(0.2, 0.2, 0.2, 0.2)); + // mad r0, r2.x, r3, r1 + temp0 = temp2.x * temp3 + temp1; + // cmp oC0, r2.y, r1, r0 + out_color = (temp2.y >= 0) ? temp1 : temp0; + // + + return out_color; +} + +// AntiAlias_VertexShader2 Vertex_3_0 Has PRES True +struct AntiAlias_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct AntiAlias_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +AntiAlias_VertexShader2_Output AntiAlias_VertexShader2(AntiAlias_VertexShader2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + { + // Expression_2_1 + // rcp c11.x, c0.x + expr11.x = 1.0f / (ScreenInfo.x); + // rcp c12.x, c0.y + expr12.x = 1.0f / (ScreenInfo.y); + } + + AntiAlias_VertexShader2_Output o; + // def c0, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_texcoord1 o2 + // dcl_texcoord2 o3 + // add o2.x, -c11.x, v1.x + o.texcoord1.x = -expr11.x + i.texcoord.x; + // add o2.z, c11.x, v1.x + o.texcoord1.z = expr11.x + i.texcoord.x; + // add o3.y, -c12.x, v1.y + o.texcoord2.y = -expr12.x + i.texcoord.y; + // add o3.w, c12.x, v1.y + o.texcoord2.w = expr12.x + i.texcoord.y; + // mov o0.xy, v0 + o.position.xy = i.position.xy; + // mov o0.zw, c0.xyxy + o.position.zw = float2(0, 1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // mov o2.yw, v1.y + o.texcoord1.yw = i.texcoord.y; + // mov o3.xz, v1.x + o.texcoord2.xz = i.texcoord.x; + // + + return o; +} + +technique AntiAlias +{ + pass p0 + { + VertexShader = compile vs_3_0 AntiAlias_VertexShader2(); // 15 + PixelShader = compile ps_3_0 AntiAlias_PixelShader1(); // 16 + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + CullMode = 1; + ZEnable = 0; + ZWriteEnable = 0; + ZFunc = 8; + ColorWriteEnable = 15; + } +} + diff --git a/rain.fx b/rain.fx new file mode 100644 index 0000000..3f61037 --- /dev/null +++ b/rain.fx @@ -0,0 +1,465 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +column_major float4x4 World : World : register(vs_2_0, c20); +column_major float4x4 View : View : register(vs_2_0, c23); +column_major float4x3 ViewInverse : ViewInverse : register(vs_2_0, c26); +column_major float4x4 Projection : Projection : register(vs_2_0, c16); +float Time : Time : register(vs_2_0, c28); +float RainBoxHeight : register(vs_2_0, c29) = { 200 }; +float MinWidth : register(vs_2_0, c30) = { 0.5 }; +float MaxWidth = { 1.5 }; +float MinHeight : register(vs_2_0, c31) = { 5 }; +float MaxHeight = { 15 }; +float MinSpeed : register(vs_2_0, c32) = { 50 }; +float MaxSpeed = { 150 }; +float MinAlpha : register(vs_2_0, c33) = { 0.1 }; +float MaxAlpha = { 0.5 }; +float WindStrength = { 1 }; +texture DiffuseTexture ; // 12 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 14 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c34) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 19 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 23 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +// Default_M_PixelShader1 Pixel_2_0 Has PRES False +struct Default_M_PixelShader1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.w, r0.x, r1.w + temp1.w = temp0.x * temp1.w; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_M_VertexShader2 Vertex_2_0 Has PRES True +struct Default_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Default_M_VertexShader2_Output +{ + float4 color : COLOR; + float4 position : POSITION; + float2 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; +}; + +Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 5 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + // Expression_2_1 + // neg r0.x, c1.x + temp0.x = -MinWidth.x; + // add c11.x, r0.x, c2.x + expr11.x = temp0.x + MaxWidth.x; + // neg r0.x, c3.x + temp0.x = -MinHeight.x; + // add c12.x, r0.x, c4.x + expr12.x = temp0.x + MaxHeight.x; + // neg r0.x, c5.x + temp0.x = -MinSpeed.x; + // add c13.x, r0.x, c6.x + expr13.x = temp0.x + MaxSpeed.x; + // neg r0.x, c7.x + temp0.x = -MinAlpha.x; + // add c14.x, r0.x, c8.x + expr14.x = temp0.x + MaxAlpha.x; + // rcp c15.x, c0.x + expr15.x = 1.0f / (RainBoxHeight.x); + } + + Default_M_VertexShader2_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, -0.5, 0 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord v2 + // mov r0.x, c14.x + temp0.x = expr14.x; + // mad oD0.w, v1.w, r0.x, c33.x + o.color.w = i.color.w * temp0.x + MinAlpha.x; + // mov r0.x, c11.x + temp0.x = expr11.x; + // mad r0.y, v1.x, r0.x, c30.x + temp0.y = i.color.x * temp0.x + MinWidth.x; + // mov r1.x, c12.x + temp1.x = expr12.x; + // mad r0.x, v1.y, r1.x, c31.x + temp0.x = i.color.y * temp1.x + MinHeight.x; + // mul r0.xy, r0, v2.yxzw + temp0.xy = temp0.xy * i.texcoord.yx; + // mov r1.x, c13.x + temp1.x = expr13.x; + // mad r0.z, v1.z, r1.x, c32.x + temp0.z = i.color.z * temp1.x + MinSpeed.x; + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.w, r1, c22 + temp0.w = dot(temp1, (World._m02_m12_m22_m32)); + // mad r0.z, r0.z, -c28.x, r0.w + temp0.z = temp0.z * -Time.x + temp0.w; + // mul r0.z, r0.z, c15.x + temp0.z = temp0.z * expr15.x; + // abs r0.w, r0.z + temp0.w = abs(temp0.z); + // sge r0.z, r0.z, -r0.z + temp0.z = (temp0.z >= -temp0.z) ? 1 : 0; + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // lrp r2.x, r0.z, r0.w, -r0.w + temp2.x = lerp(-temp0.w, temp0.w, temp0.z); + // mad r0.z, r2.x, c29.x, c29.x + temp0.z = temp2.x * RainBoxHeight.x + RainBoxHeight.x; + // mad r2.z, r0.x, c0.z, r0.z + temp2.z = temp0.x * float1(-0.5) + temp0.z; + // mov r2.w, c0.x + temp2.w = float1(1); + // dp4 r2.x, r1, c20 + temp2.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r2.y, r1, c21 + temp2.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 r0.x, r2, c23 + temp0.x = dot(temp2, (View._m00_m10_m20_m30)); + // mad r0.x, r0.y, c0.z, r0.x + temp0.x = temp0.y * float1(-0.5) + temp0.x; + // dp4 r0.y, r2, c24 + temp0.y = dot(temp2, (View._m01_m11_m21_m31)); + // dp4 r0.z, r2, c25 + temp0.z = dot(temp2, (View._m02_m12_m22_m32)); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c16 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c17 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c18 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c19 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c26 + temp1.x = dot(temp0, (ViewInverse._m00_m10_m20_m30)); + // dp4 r1.y, r0, c27 + temp1.y = dot(temp0, (ViewInverse._m01_m11_m21_m31)); + // add r0.xy, r1, c34.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c34 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0.xyz, c0.x + o.color.xyz = float3(1, 1, 1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// Default_PixelShader3 Pixel_2_0 Has PRES False +struct Default_PixelShader3_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // log r1.w, r0.x + temp1.w = log2(temp0.x); + // log r1.z, r0.y + temp1.z = log2(temp0.y); + // log r1.y, r0.z + temp1.y = log2(temp0.z); + // mul r1.yzw, r1, c0.x + temp1.yzw = temp1.yzw * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.w + temp0.x = exp2(temp1.w); + // exp r0.y, r1.z + temp0.y = exp2(temp1.z); + // exp r0.z, r1.y + temp0.z = exp2(temp1.y); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mul r0.w, r1.x, r0.w + temp0.w = temp1.x * temp0.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_VertexShader4 Vertex_2_0 Has PRES True +struct Default_VertexShader4_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Default_VertexShader4_Output +{ + float4 color : COLOR; + float4 position : POSITION; + float2 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; +}; + +Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 5 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 5 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + float4 expr15; + { + float4 temp0; + // Expression_2_1 + // neg r0.x, c1.x + temp0.x = -MinWidth.x; + // add c11.x, r0.x, c2.x + expr11.x = temp0.x + MaxWidth.x; + // neg r0.x, c3.x + temp0.x = -MinHeight.x; + // add c12.x, r0.x, c4.x + expr12.x = temp0.x + MaxHeight.x; + // neg r0.x, c5.x + temp0.x = -MinSpeed.x; + // add c13.x, r0.x, c6.x + expr13.x = temp0.x + MaxSpeed.x; + // neg r0.x, c7.x + temp0.x = -MinAlpha.x; + // add c14.x, r0.x, c8.x + expr14.x = temp0.x + MaxAlpha.x; + // rcp c15.x, c0.x + expr15.x = 1.0f / (RainBoxHeight.x); + } + + Default_VertexShader4_Output o; + float4 temp0, temp1, temp2; + // def c0, 1, 0, -0.5, 0 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord v2 + // mov r0.x, c14.x + temp0.x = expr14.x; + // mad oD0.w, v1.w, r0.x, c33.x + o.color.w = i.color.w * temp0.x + MinAlpha.x; + // mov r0.x, c11.x + temp0.x = expr11.x; + // mad r0.y, v1.x, r0.x, c30.x + temp0.y = i.color.x * temp0.x + MinWidth.x; + // mov r1.x, c12.x + temp1.x = expr12.x; + // mad r0.x, v1.y, r1.x, c31.x + temp0.x = i.color.y * temp1.x + MinHeight.x; + // mul r0.xy, r0, v2.yxzw + temp0.xy = temp0.xy * i.texcoord.yx; + // mov r1.x, c13.x + temp1.x = expr13.x; + // mad r0.z, v1.z, r1.x, c32.x + temp0.z = i.color.z * temp1.x + MinSpeed.x; + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r0.w, r1, c22 + temp0.w = dot(temp1, (World._m02_m12_m22_m32)); + // mad r0.z, r0.z, -c28.x, r0.w + temp0.z = temp0.z * -Time.x + temp0.w; + // mul r0.z, r0.z, c15.x + temp0.z = temp0.z * expr15.x; + // abs r0.w, r0.z + temp0.w = abs(temp0.z); + // sge r0.z, r0.z, -r0.z + temp0.z = (temp0.z >= -temp0.z) ? 1 : 0; + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // lrp r2.x, r0.z, r0.w, -r0.w + temp2.x = lerp(-temp0.w, temp0.w, temp0.z); + // mad r0.z, r2.x, c29.x, c29.x + temp0.z = temp2.x * RainBoxHeight.x + RainBoxHeight.x; + // mad r2.z, r0.x, c0.z, r0.z + temp2.z = temp0.x * float1(-0.5) + temp0.z; + // mov r2.w, c0.x + temp2.w = float1(1); + // dp4 r2.x, r1, c20 + temp2.x = dot(temp1, (World._m00_m10_m20_m30)); + // dp4 r2.y, r1, c21 + temp2.y = dot(temp1, (World._m01_m11_m21_m31)); + // dp4 r0.x, r2, c23 + temp0.x = dot(temp2, (View._m00_m10_m20_m30)); + // mad r0.x, r0.y, c0.z, r0.x + temp0.x = temp0.y * float1(-0.5) + temp0.x; + // dp4 r0.y, r2, c24 + temp0.y = dot(temp2, (View._m01_m11_m21_m31)); + // dp4 r0.z, r2, c25 + temp0.z = dot(temp2, (View._m02_m12_m22_m32)); + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c16 + o.position.x = dot(temp0, (Projection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c17 + o.position.y = dot(temp0, (Projection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c18 + o.position.z = dot(temp0, (Projection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c19 + o.position.w = dot(temp0, (Projection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c26 + temp1.x = dot(temp0, (ViewInverse._m00_m10_m20_m30)); + // dp4 r1.y, r0, c27 + temp1.y = dot(temp0, (ViewInverse._m01_m11_m21_m31)); + // add r0.xy, r1, c34.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c34 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0.xyz, c0.x + o.color.xyz = float3(1, 1, 1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Default +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_VertexShader4(); // 28 + PixelShader = compile ps_2_0 Default_PixelShader3(); // 29 + ZEnable = 0; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + +technique Default_M +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 30 + PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 31 + ZEnable = 0; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + diff --git a/render2d.fx b/render2d.fx new file mode 100644 index 0000000..6db3cfb --- /dev/null +++ b/render2d.fx @@ -0,0 +1,707 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture BaseTexture ; // 2 +sampler2D BaseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + AddressU = 3; + AddressV = 3; + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; +}; +column_major float4x4 World : World : register(vs_2_0, c11); +// AptRenderer_PixelShader1 Pixel_2_0 Has PRES False +struct AptRenderer_PixelShader1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AptRenderer_PixelShader1(AptRenderer_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AptRenderer_VertexShader2 Vertex_2_0 Has PRES False +struct AptRenderer_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AptRenderer_VertexShader2_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +AptRenderer_VertexShader2_Output AptRenderer_VertexShader2(AptRenderer_VertexShader2_Input i) +{ + AptRenderer_VertexShader2_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (World._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// AlphaWithSolidTexture_PixelShader3 Pixel_2_0 Has PRES False +struct AlphaWithSolidTexture_PixelShader3_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AlphaWithSolidTexture_PixelShader3(AlphaWithSolidTexture_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // mul r0.xyz, r0, v0 + temp0.xyz = temp0.xyz * i.color.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaWithSolidTexture_VertexShader4 Vertex_2_0 Has PRES False +struct AlphaWithSolidTexture_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaWithSolidTexture_VertexShader4_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +AlphaWithSolidTexture_VertexShader4_Output AlphaWithSolidTexture_VertexShader4(AlphaWithSolidTexture_VertexShader4_Input i) +{ + AlphaWithSolidTexture_VertexShader4_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (World._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// AlphaTestCopy_PixelShader5 Pixel_2_0 Has PRES False +struct AlphaTestCopy_PixelShader5_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AlphaTestCopy_PixelShader5(AlphaTestCopy_PixelShader5_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaTestCopy_VertexShader6 Vertex_2_0 Has PRES False +struct AlphaTestCopy_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaTestCopy_VertexShader6_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +AlphaTestCopy_VertexShader6_Output AlphaTestCopy_VertexShader6(AlphaTestCopy_VertexShader6_Input i) +{ + AlphaTestCopy_VertexShader6_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (World._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// GrayCopy_PixelShader7 Pixel_2_0 Has PRES False +struct GrayCopy_PixelShader7_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 GrayCopy_PixelShader7(GrayCopy_PixelShader7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0.3, 0.59, 0.11, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // dp3 r0.x, r0, c0 + temp0.x = dot(temp0.xyz, float3(0.3, 0.59, 0.11)); + // mul r1.w, r0.w, v0.w + temp1.w = temp0.w * i.color.w; + // mul r1.xyz, r0.x, v0 + temp1.xyz = temp0.xxx * i.color.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// GrayCopy_VertexShader8 Vertex_2_0 Has PRES False +struct GrayCopy_VertexShader8_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct GrayCopy_VertexShader8_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +GrayCopy_VertexShader8_Output GrayCopy_VertexShader8(GrayCopy_VertexShader8_Input i) +{ + GrayCopy_VertexShader8_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (World._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Gray_PixelShader9 Pixel_2_0 Has PRES False +struct Gray_PixelShader9_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Gray_PixelShader9(Gray_PixelShader9_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 0.3, 0.59, 0.11, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // dp3 r0.x, r0, c0 + temp0.x = dot(temp0.xyz, float3(0.3, 0.59, 0.11)); + // mul r1.w, r0.w, v0.w + temp1.w = temp0.w * i.color.w; + // mul r1.xyz, r0.x, v0 + temp1.xyz = temp0.xxx * i.color.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Gray_VertexShader10 Vertex_2_0 Has PRES False +struct Gray_VertexShader10_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Gray_VertexShader10_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Gray_VertexShader10_Output Gray_VertexShader10(Gray_VertexShader10_Input i) +{ + Gray_VertexShader10_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (World._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// AlphaBlend_PixelShader11 Pixel_2_0 Has PRES False +struct AlphaBlend_PixelShader11_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 AlphaBlend_PixelShader11(AlphaBlend_PixelShader11_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// AlphaBlend_VertexShader12 Vertex_2_0 Has PRES False +struct AlphaBlend_VertexShader12_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct AlphaBlend_VertexShader12_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +AlphaBlend_VertexShader12_Output AlphaBlend_VertexShader12(AlphaBlend_VertexShader12_Input i) +{ + AlphaBlend_VertexShader12_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (World._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Additive_PixelShader13 Pixel_2_0 Has PRES False +struct Additive_PixelShader13_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Additive_PixelShader13(Additive_PixelShader13_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive_VertexShader14 Vertex_2_0 Has PRES False +struct Additive_VertexShader14_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Additive_VertexShader14_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Additive_VertexShader14_Output Additive_VertexShader14(Additive_VertexShader14_Input i) +{ + Additive_VertexShader14_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (World._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Copy_PixelShader15 Pixel_2_0 Has PRES False +struct Copy_PixelShader15_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Copy_PixelShader15(Copy_PixelShader15_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Copy_VertexShader16 Vertex_2_0 Has PRES False +struct Copy_VertexShader16_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Copy_VertexShader16_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Copy_VertexShader16_Output Copy_VertexShader16(Copy_VertexShader16_Input i) +{ + Copy_VertexShader16_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (World._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Copy +{ + pass P0 + { + VertexShader = compile vs_2_0 Copy_VertexShader16(); // 7 + PixelShader = compile ps_2_0 Copy_PixelShader15(); // 8 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Additive +{ + pass P0 + { + VertexShader = compile vs_2_0 Additive_VertexShader14(); // 9 + PixelShader = compile ps_2_0 Additive_PixelShader13(); // 10 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + AlphaTestEnable = 0; + } +} + +technique AlphaBlend +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaBlend_VertexShader12(); // 11 + PixelShader = compile ps_2_0 AlphaBlend_PixelShader11(); // 12 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique Gray +{ + pass P0 + { + VertexShader = compile vs_2_0 Gray_VertexShader10(); // 13 + PixelShader = compile ps_2_0 Gray_PixelShader9(); // 14 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique GrayCopy +{ + pass P0 + { + VertexShader = compile vs_2_0 GrayCopy_VertexShader8(); // 15 + PixelShader = compile ps_2_0 GrayCopy_PixelShader7(); // 16 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique AlphaTestCopy +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaTestCopy_VertexShader6(); // 17 + PixelShader = compile ps_2_0 AlphaTestCopy_PixelShader5(); // 18 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique AlphaWithSolidTexture +{ + pass P0 + { + VertexShader = compile vs_2_0 AlphaWithSolidTexture_VertexShader4(); // 19 + PixelShader = compile ps_2_0 AlphaWithSolidTexture_PixelShader3(); // 20 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique AptRenderer +{ + pass P0 + { + VertexShader = compile vs_2_0 AptRenderer_VertexShader2(); // 21 + PixelShader = compile ps_2_0 AptRenderer_PixelShader1(); // 22 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + diff --git a/riverreflection.fx b/riverreflection.fx new file mode 100644 index 0000000..49f468f --- /dev/null +++ b/riverreflection.fx @@ -0,0 +1,340 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture RiverTexture ; // 2 +sampler2D RiverTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + MipFilter = 2; + MinFilter = 2; + MagFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float4 Opacity = { 1, 1, 1, 1 }; +texture WaterReflectionTexture ; // 8 +sampler2D WaterReflectionTextureSampler = +sampler_state +{ + Texture = ; // 11 + MipFilter = 1; + MinFilter = 2; + MagFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture EnvironmentTexture ; // 15 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 19 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 26 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 30 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +column_major float4x4 World : World : register(vs_2_0, c15); +float Time : Time; +// _Default_PixelShader1 Pixel_2_0 Has PRES False +struct _Default_PixelShader1_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; +}; + +float4 _Default_PixelShader1(_Default_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl v1.x + // dcl t0.xy + // dcl t1.xy + // dcl t2.xyz + // dcl_2d s0 + // dcl_cube s1 + // dcl_2d s2 + // texld r0, t2, s1 + temp0 = texCUBE(EnvironmentTextureSampler, i.texcoord2.xyz); + // texld r1, t0, s0 + temp1 = tex2D(RiverTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mul r0.xyz, r0, v1.x + temp0.xyz = temp0.xyz * i.color1.xxx; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// _Default_VertexShader2 Vertex_2_0 Has PRES False +struct _Default_VertexShader2_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord1 : TEXCOORD1; +}; + +struct _Default_VertexShader2_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; +}; + +_Default_VertexShader2_Output _Default_VertexShader2(_Default_VertexShader2_Input i) +{ + _Default_VertexShader2_Output o; + float4 temp0; + float3 temp1; + // def c0, 1, 0, -0, -2 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord1 v2 + // mad r0, v0.xyzx, c0.xxxy, c0.zzzx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(-0, -0, -0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mul oD0.w, v1.w, c18.w + o.color.w = i.color.w * Opacity.w; + // dp4 r1.x, r0, c15 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c16 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c17 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // add r0.xy, r1, c19.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // add r1.xyz, -r1, c123 + temp1.xyz = -temp1.xyz + EyePosition.xyz; + // mul oT1.xy, r0, c19 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // nrm r0.xyz, r1 + temp0.xyz = normalize(temp1.xyz).xyz; + // mad r0.xyz, r0.z, c0.zzww, r0 + temp0.xyz = temp0.zzz * float3(-0, -0, -2) + temp0.xyz; + // mov oT2.xyz, -r0 + o.texcoord2 = -temp0; + // mov oD0.xyz, v1 + o.color.xyz = i.color.xyz; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord1; + // + + return o; +} + +// Default_U_PixelShader3 Pixel_2_0 Has PRES False +struct Default_U_PixelShader3_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; +}; + +float4 Default_U_PixelShader3(Default_U_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl v1.x + // dcl t0.xy + // dcl t1.xy + // dcl t2.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // rcp r0.w, t2.z + temp0.w = 1.0f / i.texcoord2.z; + // mul r0.xy, r0.w, t2 + temp0.xy = temp0.ww * i.texcoord2.xy; + // texld r0, r0, s1 + temp0 = tex2D(WaterReflectionTextureSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(RiverTextureSampler, i.texcoord.xy); + // texld r2, t1, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r0.xyz, r0, r1 + temp0.xyz = temp0.xyz * temp1.xyz; + // mul r0.xyz, r0, v1.x + temp0.xyz = temp0.xyz * i.color1.xxx; + // mul r1.xyz, r2, r0 + temp1.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_U_VertexShader4 Vertex_2_0 Has PRES False +struct Default_U_VertexShader4_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_U_VertexShader4_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; +}; + +Default_U_VertexShader4_Output Default_U_VertexShader4(Default_U_VertexShader4_Input i) +{ + Default_U_VertexShader4_Output o; + float4 temp0; + float3 temp1; + // def c0, 1, 0, 0.5, 0 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord1 v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // mul oD0.w, v1.w, c17.w + o.color.w = i.color.w * Opacity.w; + // dp4 r1.x, r0, c15 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c16 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r1.xy, r1, c18.zwzw + temp1.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r1, c18 + o.texcoord1 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c11 + temp1.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c12 + temp1.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r1.z, r0, c14 + temp1.z = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, r1.z + temp0.xy = temp1.xy + temp1.zz; + // mov oPos.xyw, r1.xyzz + o.position.xyw = temp1.xyz; + // mov oT2.z, r1.z + o.texcoord2.z = temp1.z; + // mul oT2.xy, r0, c0.z + o.texcoord2.xy = temp0.xy * float2(0.5, 0.5); + // mov oD0.xyz, v1 + o.color.xyz = i.color.xyz; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord1; + // + + return o; +} + +technique Default_U +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_U_VertexShader4(); // 35 + PixelShader = compile ps_2_0 Default_U_PixelShader3(); // 36 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + ColorWriteEnable = 7; + SrcBlend = 5; + DestBlend = 2; + } +} + +technique _Default +{ + pass P0 + { + VertexShader = compile vs_2_0 _Default_VertexShader2(); // 37 + PixelShader = compile ps_2_0 _Default_PixelShader1(); // 38 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + ColorWriteEnable = 7; + SrcBlend = 5; + DestBlend = 2; + } +} + +technique _Default_L +{ +} + diff --git a/riverwater.fx b/riverwater.fx new file mode 100644 index 0000000..2c0180f --- /dev/null +++ b/riverwater.fx @@ -0,0 +1,651 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture RiverTexture ; // 2 +sampler2D RiverTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + MipFilter = 2; + MinFilter = 2; + MagFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture NormalTexture ; // 7 +sampler2D NormalTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 9 + MipFilter = 2; + MinFilter = 2; + MagFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float4 Opacity : register(vs_2_0, c21) = { 1, 1, 1, 1 }; +texture WaterReflectionTexture ; // 13 +sampler2D WaterReflectionTextureSampler = +sampler_state +{ + Texture = ; // 16 + MipFilter = 1; + MinFilter = 2; + MagFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture EnvironmentTexture ; // 20 +samplerCUBE EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 24 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c22) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 31 +sampler2D ShroudTextureSampler : register(ps_2_0, s3) = +sampler_state +{ + Texture = ; // 35 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +column_major float4x4 World : World; +float Time : Time; +// _Default_L_PixelShader1 Pixel_2_0 Has PRES False +struct _Default_L_PixelShader1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +float4 _Default_L_PixelShader1(_Default_L_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(RiverTextureSampler, i.texcoord.xy); + // texld r1, t1, s0 + temp1 = tex2D(RiverTextureSampler, i.texcoord1.xy); + // texld r2, t2, s1 + temp2 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // add r0, r0, r1 + temp0 = temp0 + temp1; + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _Default_L_VertexShader2 Vertex_2_0 Has PRES True +struct _Default_L_VertexShader2_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord1 : TEXCOORD1; +}; + +struct _Default_L_VertexShader2_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; +}; + +_Default_L_VertexShader2_Output _Default_L_VertexShader2(_Default_L_VertexShader2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + float4 expr18; + { + // Expression_2_1 + // mul c17.x, c0.x, (-0.004) + expr17.x = Time.x * (-0.004); + // mul c18.x, c0.x, (-0.016) + expr18.x = Time.x * (-0.016); + } + + _Default_L_VertexShader2_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.75, 0.95 + // def c1, 1, 0.5, 0, 0 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord1 v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov r1.x, c19.w + temp1.x = Opacity.w; + // mul r1.x, r1.x, v1.w + temp1.x = temp1.x * i.color.w; + // mul r1.x, r1.x, c0.z + temp1.x = temp1.x * float1(0.75); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // min oD0.w, r1.x, c0.w + o.color.w = min(temp1.x, float1(0.95)); + // mov r1.xy, c0 + temp1.xy = float2(1, 0); + // mul r1.zw, r1.xyyx, c17.x + temp1.zw = temp1.yx * expr17.xx; + // mad oT0.xy, v2, c1, r1.zwzw + o.texcoord = i.texcoord1 * float4(1, 0.5, 0, 0) + temp1.zwzw; + // mad oT1.xy, c18.x, r1.yxzw, v2 + o.texcoord1 = expr18.x * temp1.yxzw + i.texcoord1; + // dp4 r1.x, r0, c15 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c16 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r0.xy, r1, c20.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c20 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mul oD0.xyz, v1, c0.z + o.color.xyz = i.color.xyz * float3(0.75, 0.75, 0.75); + // + + return o; +} + +// _Default_M_PixelShader3 Pixel_2_0 Has PRES False +struct _Default_M_PixelShader3_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; +}; + +float4 _Default_M_PixelShader3(_Default_M_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2, -1, 0.5, 0 + // def c1, 0.75, 0, 0, 0 + // dcl v0 + // dcl v1.x + // dcl t0 + // dcl t1.xy + // dcl t2.xy + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_cube s2 + // dcl_2d s3 + // texld r0, t1, s1 + temp0 = tex2D(NormalTextureSampler, i.texcoord1.xy); + // mad r0.xy, r0, c0.x, c0.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // mul r0.xy, r0, c0.z + temp0.xy = temp0.xy * float2(0.5, 0.5); + // mov r0.z, c0.w + temp0.z = float1(0); + // add r0.xyz, r0, t3 + temp0.xyz = temp0.xyz + i.texcoord3.xyz; + // mov r1.xy, t0.wzyx + temp1.xy = i.texcoord.wz; + // texld r0, r0, s2 + temp0 = texCUBE(EnvironmentTextureSampler, temp0.xyz); + // texld r1, r1, s0 + temp1 = tex2D(RiverTextureSampler, temp1.xy); + // texld r2, t0, s0 + temp2 = tex2D(RiverTextureSampler, i.texcoord.xy); + // texld r3, t2, s3 + temp3 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // add r1, r1, r2 + temp1 = temp1 + temp2; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mad r0.xyz, r0, c1.x, r1 + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 0.75) + temp1.xyz; + // lrp r2.xyz, v1.x, r0, -c0.y + temp2.xyz = lerp(float3(1, 1, 1), temp0.xyz, i.color1.xxx); + // mul r1.xyz, r3, r2 + temp1.xyz = temp3.xyz * temp2.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// _Default_M_VertexShader4 Vertex_2_0 Has PRES True +struct _Default_M_VertexShader4_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord1 : TEXCOORD1; +}; + +struct _Default_M_VertexShader4_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float color1 : COLOR1; +}; + +_Default_M_VertexShader4_Output _Default_M_VertexShader4(_Default_M_VertexShader4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 18 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 18 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr18; + float4 expr19; + float4 expr20; + { + // Expression_2_1 + // mul c18.x, c0.x, (-0.004) + expr18.x = Time.x * (-0.004); + // mul c19.x, c0.x, (-0.016) + expr19.x = Time.x * (-0.016); + // mul c20.x, c0.x, (0.03) + expr20.x = Time.x * (0.03); + } + + _Default_M_VertexShader4_Output o; + float4 temp0, temp1; + float2 temp2; + // def c0, 1, 0, 0.75, 0.95 + // def c1, 1, 0.5, 0.9, 0 + // def c2, -0, -2, 0, 0 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord1 v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov r1.x, c21.w + temp1.x = Opacity.w; + // mul r1.x, r1.x, v1.w + temp1.x = temp1.x * i.color.w; + // mul r1.x, r1.x, c0.z + temp1.x = temp1.x * float1(0.75); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // min oD0.w, r1.x, c0.w + o.color.w = min(temp1.x, float1(0.95)); + // mul r1, v2.xyxy, c1.xyxz + temp1 = i.texcoord1.xyxy * float4(1, 0.5, 1, 0.9); + // mov r2.xy, c0 + temp2.xy = float2(1, 0); + // mad oT0.xy, c18.x, r2.yxzw, r1 + o.texcoord.xy = expr18.xx * temp2.yx + temp1.xy; + // mad oT1.xy, c20.x, r2.yxzw, r1.zwzw + o.texcoord1 = expr20.x * temp2.yxzw + temp1.zwzw; + // mad oT0.zw, c19.x, r2.xyxy, v2.xyyx + o.texcoord.zw = expr19.xx * temp2.xy + i.texcoord1.yx; + // dp4 r1.x, r0, c15 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c16 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c17 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // add r0.xy, r1, c22.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // add r1.xyz, -r1, c123 + temp1.xyz = -temp1.xyz + EyePosition.xyz; + // mul oT2.xy, r0, c22 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // nrm r0.xyz, r1 + temp0.xyz = normalize(temp1.xyz).xyz; + // mad r0.xyz, r0.z, c2.xxyw, r0 + temp0.xyz = temp0.zzz * float3(-0, -0, -2) + temp0.xyz; + // mov oT3.xyz, -r0 + o.texcoord3 = -temp0; + // mul oD0.xyz, v1, c0.z + o.color.xyz = i.color.xyz * float3(0.75, 0.75, 0.75); + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// Default_PixelShader5 Pixel_2_0 Has PRES False +struct Default_PixelShader5_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; +}; + +float4 Default_PixelShader5(Default_PixelShader5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2.2, 2, -1, 0.25 + // def c1, 0.75, 0, 0, 0 + // dcl v0 + // dcl v1.x + // dcl t0 + // dcl t1 + // dcl t2.xy + // dcl t3.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t1, s1 + temp0 = tex2D(NormalTextureSampler, i.texcoord1.xy); + // mad r0.xy, r0, c0.y, c0.z + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // mov r1.xy, t1.wzyx + temp1.xy = i.texcoord1.wz; + // texld r1, r1, s1 + temp1 = tex2D(NormalTextureSampler, temp1.xy); + // mad r0.xy, r1, c0.y, r0 + temp0.xy = temp1.xy * float2(2, 2) + temp0.xy; + // add r0.xy, r0, c0.z + temp0.xy = temp0.xy + float2(-1, -1); + // mul r0.xy, r0, c0.w + temp0.xy = temp0.xy * float2(0.25, 0.25); + // rcp r0.z, t3.z + temp0.z = 1.0f / i.texcoord3.z; + // mad r0.xy, t3, r0.z, r0 + temp0.xy = i.texcoord3.xy * temp0.zz + temp0.xy; + // mov r1.xy, t0.wzyx + temp1.xy = i.texcoord.wz; + // texld r0, r0, s2 + temp0 = tex2D(WaterReflectionTextureSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(RiverTextureSampler, temp1.xy); + // texld r2, t0, s0 + temp2 = tex2D(RiverTextureSampler, i.texcoord.xy); + // texld r3, t2, s3 + temp3 = tex2D(ShroudTextureSampler, i.texcoord2.xy); + // add r1, r1, r2 + temp1 = temp1 + temp2; + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mad r0.xyz, r0, c1.x, r1 + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 0.75) + temp1.xyz; + // lrp r2.xyz, v1.x, r0, -c0.z + temp2.xyz = lerp(float3(1, 1, 1), temp0.xyz, i.color1.xxx); + // mul r1.xyz, r3, r2 + temp1.xyz = temp3.xyz * temp2.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_VertexShader6 Vertex_2_0 Has PRES True +struct Default_VertexShader6_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_VertexShader6_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float color1 : COLOR1; +}; + +Default_VertexShader6_Output Default_VertexShader6(Default_VertexShader6_Input i) +{ + /* + PRSI + OutputRegisterOffset: 15 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 15 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr15; + float4 expr16; + float4 expr17; + float4 expr18; + { + // Expression_2_1 + // mul c15.x, c0.x, (-0.004) + expr15.x = Time.x * (-0.004); + // mul c16.x, c0.x, (-0.016) + expr16.x = Time.x * (-0.016); + // mul c17.x, c0.x, (0.03) + expr17.x = Time.x * (0.03); + // mul c18.x, c0.x, (-0.08) + expr18.x = Time.x * (-0.08); + } + + Default_VertexShader6_Output o; + float4 temp0, temp1; + float2 temp2; + // def c0, 1, 0, 0.75, 0.95 + // def c1, 1, 0.5, 0.9, 2 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord1 v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // mov r1.x, c21.w + temp1.x = Opacity.w; + // mul r1.x, r1.x, v1.w + temp1.x = temp1.x * i.color.w; + // mul r1.x, r1.x, c0.z + temp1.x = temp1.x * float1(0.75); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // min oD0.w, r1.x, c0.w + o.color.w = min(temp1.x, float1(0.95)); + // mul r1, v2.xyxy, c1.xyxz + temp1 = i.texcoord1.xyxy * float4(1, 0.5, 1, 0.9); + // mov r2.xy, c0 + temp2.xy = float2(1, 0); + // mad oT0.xy, c15.x, r2.yxzw, r1 + o.texcoord.xy = expr15.xx * temp2.yx + temp1.xy; + // mad oT1.xy, c17.x, r2.yxzw, r1.zwzw + o.texcoord1.xy = expr17.xx * temp2.yx + temp1.zw; + // mad oT0.zw, c16.x, r2.xyxy, v2.xyyx + o.texcoord.zw = expr16.xx * temp2.xy + i.texcoord1.yx; + // mul r1.xy, r2, c18.x + temp1.xy = temp2.xy * expr18.xx; + // mad oT1.zw, v2.xyyx, c1.xywx, r1.xyxy + o.texcoord1.zw = i.texcoord1.yx * float2(2, 1) + temp1.xy; + // dp4 r1.x, r0, c19 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c20 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // add r1.xy, r1, c22.zwzw + temp1.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r1, c22 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 r1.x, r0, c11 + temp1.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c12 + temp1.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 r1.z, r0, c14 + temp1.z = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, r1.z + temp0.xy = temp1.xy + temp1.zz; + // mov oPos.xyw, r1.xyzz + o.position.xyw = temp1.xyz; + // mov oT3.z, r1.z + o.texcoord3.z = temp1.z; + // mul oT3.xy, r0, c1.y + o.texcoord3.xy = temp0.xy * float2(0.5, 0.5); + // mul oD0.xyz, v1, c0.z + o.color.xyz = i.color.xyz * float3(0.75, 0.75, 0.75); + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader6(); // 40 + PixelShader = compile ps_2_0 Default_PixelShader5(); // 41 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 _Default_M_VertexShader4(); // 42 + PixelShader = compile ps_2_0 _Default_M_PixelShader3(); // 43 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = compile vs_2_0 _Default_L_VertexShader2(); // 44 + PixelShader = compile ps_2_0 _Default_L_PixelShader1(); // 45 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + } +} + diff --git a/rotateenvironmentmap.fx b/rotateenvironmentmap.fx new file mode 100644 index 0000000..3caab3b --- /dev/null +++ b/rotateenvironmentmap.fx @@ -0,0 +1,486 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(ps_2_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture EnvironmentTexture ; // 2 +samplerCUBE EnvironmentTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 5 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; + AddressW = 3; +}; +// CubeFace5_PixelShader1 Pixel_2_0 Has PRES False +float4 CubeFace5_PixelShader1(float3 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 0, 0, 1, 0 + // dcl t0.xyz + // dcl_cube s0 + // mov r0.xyz, c6 + temp0.xyz = DirectionalLight[0].Direction.xyz; + // mul r1.xyz, r0.zxyw, c0 + temp1.xyz = temp0.zxy * float3(0, 0, 1); + // mad r0.xyz, r0.yzxw, c0.yzxw, -r1 + temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r0.xyz, r1.yzxw, c6.zxyw + temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy; + // mad r0.xyz, c6.yzxw, r1.zxyw, -r0 + temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz; + // dp3 r1.x, r1, t0 + temp1.x = dot(temp1.xyz, texcoord.xyz); + // dp3 r1.y, r0, t0 + temp1.y = dot(temp0.xyz, texcoord.xyz); + // dp3 r1.z, c6, t0 + temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz); + // texld r0, r1, s0 + temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// CubeFace5_VertexShader2 Vertex_2_0 Has PRES False +struct CubeFace5_VertexShader2_Output +{ + float4 position : POSITION; + float3 texcoord : TEXCOORD; +}; + +CubeFace5_VertexShader2_Output CubeFace5_VertexShader2(float4 position : POSITION) +{ + CubeFace5_VertexShader2_Output o; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + o.position.xyz = position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mul oT0.xy, v0, c0.yxzw + o.texcoord.xy = position.xy * float2(-1, 1); + // mov oT0.z, c0.y + o.texcoord.z = float1(-1); + // + + return o; +} + +// CubeFace4_PixelShader3 Pixel_2_0 Has PRES False +float4 CubeFace4_PixelShader3(float3 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 0, 0, 1, 0 + // dcl t0.xyz + // dcl_cube s0 + // mov r0.xyz, c6 + temp0.xyz = DirectionalLight[0].Direction.xyz; + // mul r1.xyz, r0.zxyw, c0 + temp1.xyz = temp0.zxy * float3(0, 0, 1); + // mad r0.xyz, r0.yzxw, c0.yzxw, -r1 + temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r0.xyz, r1.yzxw, c6.zxyw + temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy; + // mad r0.xyz, c6.yzxw, r1.zxyw, -r0 + temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz; + // dp3 r1.x, r1, t0 + temp1.x = dot(temp1.xyz, texcoord.xyz); + // dp3 r1.y, r0, t0 + temp1.y = dot(temp0.xyz, texcoord.xyz); + // dp3 r1.z, c6, t0 + temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz); + // texld r0, r1, s0 + temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// CubeFace4_VertexShader4 Vertex_2_0 Has PRES False +struct CubeFace4_VertexShader4_Output +{ + float4 position : POSITION; + float3 texcoord : TEXCOORD; +}; + +CubeFace4_VertexShader4_Output CubeFace4_VertexShader4(float4 position : POSITION) +{ + CubeFace4_VertexShader4_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + o.position.xyz = position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v0 + o.texcoord.xy = position.xy; + // mov oT0.z, c0.x + o.texcoord.z = float1(1); + // + + return o; +} + +// CubeFace3_PixelShader5 Pixel_2_0 Has PRES False +float4 CubeFace3_PixelShader5(float3 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 0, 0, 1, 0 + // dcl t0.xyz + // dcl_cube s0 + // mov r0.xyz, c6 + temp0.xyz = DirectionalLight[0].Direction.xyz; + // mul r1.xyz, r0.zxyw, c0 + temp1.xyz = temp0.zxy * float3(0, 0, 1); + // mad r0.xyz, r0.yzxw, c0.yzxw, -r1 + temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r0.xyz, r1.yzxw, c6.zxyw + temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy; + // mad r0.xyz, c6.yzxw, r1.zxyw, -r0 + temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz; + // dp3 r1.x, r1, t0 + temp1.x = dot(temp1.xyz, texcoord.xyz); + // dp3 r1.y, r0, t0 + temp1.y = dot(temp0.xyz, texcoord.xyz); + // dp3 r1.z, c6, t0 + temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz); + // texld r0, r1, s0 + temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// CubeFace3_VertexShader6 Vertex_2_0 Has PRES False +struct CubeFace3_VertexShader6_Output +{ + float4 position : POSITION; + float3 texcoord : TEXCOORD; +}; + +CubeFace3_VertexShader6_Output CubeFace3_VertexShader6(float4 position : POSITION) +{ + CubeFace3_VertexShader6_Output o; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + o.position.xyz = position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xz, v0.xyyw + o.texcoord.xz = position.xy; + // mov oT0.y, c0.y + o.texcoord.y = float1(-1); + // + + return o; +} + +// CubeFace2_PixelShader7 Pixel_2_0 Has PRES False +float4 CubeFace2_PixelShader7(float3 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 0, 0, 1, 0 + // dcl t0.xyz + // dcl_cube s0 + // mov r0.xyz, c6 + temp0.xyz = DirectionalLight[0].Direction.xyz; + // mul r1.xyz, r0.zxyw, c0 + temp1.xyz = temp0.zxy * float3(0, 0, 1); + // mad r0.xyz, r0.yzxw, c0.yzxw, -r1 + temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r0.xyz, r1.yzxw, c6.zxyw + temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy; + // mad r0.xyz, c6.yzxw, r1.zxyw, -r0 + temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz; + // dp3 r1.x, r1, t0 + temp1.x = dot(temp1.xyz, texcoord.xyz); + // dp3 r1.y, r0, t0 + temp1.y = dot(temp0.xyz, texcoord.xyz); + // dp3 r1.z, c6, t0 + temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz); + // texld r0, r1, s0 + temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// CubeFace2_VertexShader8 Vertex_2_0 Has PRES False +struct CubeFace2_VertexShader8_Output +{ + float4 position : POSITION; + float3 texcoord : TEXCOORD; +}; + +CubeFace2_VertexShader8_Output CubeFace2_VertexShader8(float4 position : POSITION) +{ + CubeFace2_VertexShader8_Output o; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + o.position.xyz = position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mul oT0.xz, v0.xyyw, c0.xyyw + o.texcoord.xz = position.xy * float2(1, -1); + // mov oT0.y, c0.x + o.texcoord.y = float1(1); + // + + return o; +} + +// CubeFace1_PixelShader9 Pixel_2_0 Has PRES False +float4 CubeFace1_PixelShader9(float3 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 0, 0, 1, 0 + // dcl t0.xyz + // dcl_cube s0 + // mov r0.xyz, c6 + temp0.xyz = DirectionalLight[0].Direction.xyz; + // mul r1.xyz, r0.zxyw, c0 + temp1.xyz = temp0.zxy * float3(0, 0, 1); + // mad r0.xyz, r0.yzxw, c0.yzxw, -r1 + temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r0.xyz, r1.yzxw, c6.zxyw + temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy; + // mad r0.xyz, c6.yzxw, r1.zxyw, -r0 + temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz; + // dp3 r1.x, r1, t0 + temp1.x = dot(temp1.xyz, texcoord.xyz); + // dp3 r1.y, r0, t0 + temp1.y = dot(temp0.xyz, texcoord.xyz); + // dp3 r1.z, c6, t0 + temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz); + // texld r0, r1, s0 + temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// CubeFace1_VertexShader10 Vertex_2_0 Has PRES False +struct CubeFace1_VertexShader10_Output +{ + float4 position : POSITION; + float3 texcoord : TEXCOORD; +}; + +CubeFace1_VertexShader10_Output CubeFace1_VertexShader10(float4 position : POSITION) +{ + CubeFace1_VertexShader10_Output o; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + o.position.xyz = position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.x, c0.y + o.texcoord.x = float1(-1); + // mov oT0.yz, v0.xyxw + o.texcoord.yz = position.yx; + // + + return o; +} + +// CubeFace0_PixelShader11 Pixel_2_0 Has PRES False +float4 CubeFace0_PixelShader11(float3 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 0, 0, 1, 0 + // dcl t0.xyz + // dcl_cube s0 + // mov r0.xyz, c6 + temp0.xyz = DirectionalLight[0].Direction.xyz; + // mul r1.xyz, r0.zxyw, c0 + temp1.xyz = temp0.zxy * float3(0, 0, 1); + // mad r0.xyz, r0.yzxw, c0.yzxw, -r1 + temp0.xyz = temp0.yzx * float3(0, 1, 0) + -temp1.xyz; + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // mul r0.xyz, r1.yzxw, c6.zxyw + temp0.xyz = temp1.yzx * DirectionalLight[0].Direction.zxy; + // mad r0.xyz, c6.yzxw, r1.zxyw, -r0 + temp0.xyz = DirectionalLight[0].Direction.yzx * temp1.zxy + -temp0.xyz; + // dp3 r1.x, r1, t0 + temp1.x = dot(temp1.xyz, texcoord.xyz); + // dp3 r1.y, r0, t0 + temp1.y = dot(temp0.xyz, texcoord.xyz); + // dp3 r1.z, c6, t0 + temp1.z = dot(DirectionalLight[0].Direction.xyz, texcoord.xyz); + // texld r0, r1, s0 + temp0 = texCUBE(EnvironmentTextureSampler, temp1.xyz); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// CubeFace0_VertexShader12 Vertex_2_0 Has PRES False +struct CubeFace0_VertexShader12_Output +{ + float4 position : POSITION; + float3 texcoord : TEXCOORD; +}; + +CubeFace0_VertexShader12_Output CubeFace0_VertexShader12(float4 position : POSITION) +{ + CubeFace0_VertexShader12_Output o; + // def c0, 1, -1, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + o.position.xyz = position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.x, c0.x + o.texcoord.x = float1(1); + // mul oT0.yz, v0.xyxw, c0.xxyw + o.texcoord.yz = position.yx * float2(1, -1); + // + + return o; +} + +technique CubeFace0 +{ + pass p0 + { + VertexShader = compile vs_2_0 CubeFace0_VertexShader12(); // 9 + PixelShader = compile ps_2_0 CubeFace0_PixelShader11(); // 10 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + +technique CubeFace1 +{ + pass p0 + { + VertexShader = compile vs_2_0 CubeFace1_VertexShader10(); // 11 + PixelShader = compile ps_2_0 CubeFace1_PixelShader9(); // 12 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + +technique CubeFace2 +{ + pass p0 + { + VertexShader = compile vs_2_0 CubeFace2_VertexShader8(); // 13 + PixelShader = compile ps_2_0 CubeFace2_PixelShader7(); // 14 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + +technique CubeFace3 +{ + pass p0 + { + VertexShader = compile vs_2_0 CubeFace3_VertexShader6(); // 15 + PixelShader = compile ps_2_0 CubeFace3_PixelShader5(); // 16 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + +technique CubeFace4 +{ + pass p0 + { + VertexShader = compile vs_2_0 CubeFace4_VertexShader4(); // 17 + PixelShader = compile ps_2_0 CubeFace4_PixelShader3(); // 18 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + +technique CubeFace5 +{ + pass p0 + { + VertexShader = compile vs_2_0 CubeFace5_VertexShader2(); // 19 + PixelShader = compile ps_2_0 CubeFace5_PixelShader1(); // 20 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + diff --git a/shadow.fx b/shadow.fx new file mode 100644 index 0000000..1f2d799 --- /dev/null +++ b/shadow.fx @@ -0,0 +1,184 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +row_major float4x4 WorldViewProjection : WorldViewProjection; +texture Sampler_PostProcess ; // 2 +sampler2D Sampler_PostProcessSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + MinFilter = 1; + MagFilter = 1; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +float4 ColorToWrite; +// _ShadowMapPostProcess_PixelShader1 Pixel_2_0 Has PRES False +float4 _ShadowMapPostProcess_PixelShader1(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 0.0009765625, 0, -0, -0.0009765625 + // def c1, 0.5, 0, 0, 0 + // def c2, 0, 0.0009765625, -0.0009765625, -0 + // dcl t0.xy + // dcl_2d s0 + // add r0.xy, t0, c0 + temp0.xy = texcoord.xy + float2(0.0009765625, 0); + // add r1.xy, t0, c0.wzyx + temp1.xy = texcoord.xy + float2(-0.0009765625, -0); + // add r2.xy, t0, c2 + temp2.xy = texcoord.xy + float2(0, 0.0009765625); + // add r3.xy, t0, c2.wzyx + temp3.xy = texcoord.xy + float2(-0, -0.0009765625); + // texld r0, r0, s0 + temp0 = tex2D(Sampler_PostProcessSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(Sampler_PostProcessSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(Sampler_PostProcessSampler, temp2.xy); + // texld r3, r3, s0 + temp3 = tex2D(Sampler_PostProcessSampler, temp3.xy); + // texld r4, t0, s0 + temp4 = tex2D(Sampler_PostProcessSampler, texcoord.xy); + // max r2.y, r0.x, r1.x + temp2.y = max(temp0.x, temp1.x); + // max r0.x, r2.x, r3.x + temp0.x = max(temp2.x, temp3.x); + // max r1.x, r2.y, r0.x + temp1.x = max(temp2.y, temp0.x); + // lrp r0, c1.x, r1.x, r4.x + temp0 = lerp(temp4.x, temp1.x, float4(0.5, 0.5, 0.5, 0.5)); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _ShadowMapPostProcess_VertexShader2 Vertex_2_0 Has PRES False +struct _ShadowMapPostProcess_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct _ShadowMapPostProcess_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +_ShadowMapPostProcess_VertexShader2_Output _ShadowMapPostProcess_VertexShader2(_ShadowMapPostProcess_VertexShader2_Input i) +{ + _ShadowMapPostProcess_VertexShader2_Output o; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// _WriteColor_PixelShader3 Pixel_2_0 Has PRES True +float4 _WriteColor_PixelShader3() : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // mov c11, c0 + expr11 = ColorToWrite; + } + + float4 out_color; + // mov oC0, c11 + out_color = expr11; + // + + return out_color; +} + +// _WriteColor_VertexShader4 Vertex_2_0 Has PRES False +float4 _WriteColor_VertexShader4(float4 position : POSITION) : POSITION +{ + float4 out_position; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mov oPos.xyz, v0 + out_position.xyz = position.xyz; + // mov oPos.w, c0.x + out_position.w = float1(1); + // + + return out_position; +} + +technique _WriteColor +{ + pass P0 + { + VertexShader = compile vs_2_0 _WriteColor_VertexShader4(); // 7 + PixelShader = compile ps_2_0 _WriteColor_PixelShader3(); // 8 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique _ShadowMapPostProcess +{ + pass P0 + { + VertexShader = compile vs_2_0 _ShadowMapPostProcess_VertexShader2(); // 9 + PixelShader = compile ps_2_0 _ShadowMapPostProcess_PixelShader1(); // 10 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/simple.fx b/simple.fx new file mode 100644 index 0000000..a31cd44 --- /dev/null +++ b/simple.fx @@ -0,0 +1,182 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +float3 ColorEmissive = { 1, 1, 1 }; +texture Texture_0 ; // 4 +sampler2D Texture_0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 6 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +float4 TexCoordTransform_0 : register(vs_2_0, c17) = { 1, 1, 0, 0 }; +bool DepthWriteEnable = { 1 }; +bool AlphaBlendingEnable ; +bool FogEnable = { 1 }; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +row_major float4x3 World : World; +float Time : Time; +// Default_Expression1 Expression_2_0 Has PRES False +float Default_Expression1() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = AlphaBlendingEnable.x; + return expr0; +} + +// Default_Expression2 Expression_2_0 Has PRES False +float Default_Expression2() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = DepthWriteEnable.x; + return expr0; +} + +// Default_PixelShader3 Pixel_2_0 Has PRES False +struct Default_PixelShader3_Input +{ + float3 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; +}; + +float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 1, -1, 0, 0 + // dcl v0.xyz + // dcl v1.x + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r1.xyz, v0 + temp1.xyz = i.color.xyz; + // mad r0.xyz, r1, r0, c0.y + temp0.xyz = temp1.xyz * temp0.xyz + float3(-1, -1, -1); + // mad r1.xyz, v1.x, r0, c0.x + temp1.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // mov r0.x, c0.x + temp0.x = float1(1); + // mul r1.w, r0.w, r0.x + temp1.w = temp0.w * temp0.x; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_VertexShader4 Vertex_2_0 Has PRES True +struct Default_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Default_VertexShader4_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float3 color : COLOR; + float color1 : COLOR1; +}; + +Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i) +{ + /* + PRSI + OutputRegisterOffset: 15 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 2 + Unknown3: 0 + Unknown4: 0 + Unknown5: 15 + Unknown6: 2 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr15; + float4 expr16; + { + // Expression_2_1 + // mul c15.xy, c2.x, c1.zw + expr15.xy = Time.x * TexCoordTransform_0.zw; + // mov c16.xyz, c0.xyz + expr16.xyz = ColorEmissive.xyz; + } + + Default_VertexShader4_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c17 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v1, r0, c15 + o.texcoord = i.texcoord * temp0 + expr15; + // mov oD0.xyz, c16 + o.color = expr16; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader4(); // 14 + PixelShader = compile ps_2_0 Default_PixelShader3(); // 15 + ZEnable = 1; + ZFunc = 4; + CullMode = 2; + AlphaTestEnable = 0; + ZWriteEnable = Default_Expression2(); // 0 + AlphaBlendEnable = Default_Expression1(); // 0 + SrcBlend = 5; + DestBlend = 6; + } +} + diff --git a/simplest.fx b/simplest.fx new file mode 100644 index 0000000..c8a5142 --- /dev/null +++ b/simplest.fx @@ -0,0 +1,203 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +float4 FlatColorOverride ; +texture BaseTexture ; // 4 +sampler2D BaseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 6 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +// Textured_PixelShader1 Pixel_2_0 Has PRES False +float4 Textured_PixelShader1(float2 texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(BaseTextureSampler, texcoord.xy); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Textured_VertexShader2 Vertex_2_0 Has PRES False +struct Textured_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Textured_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +Textured_VertexShader2_Output Textured_VertexShader2(Textured_VertexShader2_Input i) +{ + Textured_VertexShader2_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// DynamicParameter_PixelShader3 Pixel_2_0 Has PRES False +float4 DynamicParameter_PixelShader3() : COLOR +{ + float4 out_color; + // def c0, 1, 0, 0, 1 + // mov oC0, c0 + out_color = float4(1, 0, 0, 1); + // + + return out_color; +} + +// DynamicParameter_VertexShader4 Vertex_2_0 Has PRES False +float4 DynamicParameter_VertexShader4(float4 position : POSITION) : POSITION +{ + float4 out_position; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // + + return out_position; +} + +// Simplest_PixelShader5 Pixel_2_0 Has PRES False +float4 Simplest_PixelShader5() : COLOR +{ + float4 out_color; + // def c0, 1, 0, 0, 1 + // mov oC0, c0 + out_color = float4(1, 0, 0, 1); + // + + return out_color; +} + +// Simplest_VertexShader6 Vertex_2_0 Has PRES False +float4 Simplest_VertexShader6(float4 position : POSITION) : POSITION +{ + float4 out_position; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c11 + out_position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + out_position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + out_position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + out_position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // + + return out_position; +} + +technique Simplest +{ + pass P0 + { + VertexShader = compile vs_2_0 Simplest_VertexShader6(); // 9 + PixelShader = compile ps_2_0 Simplest_PixelShader5(); // 10 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + ColorWriteEnable = 15; + AlphaTestEnable = 0; + } +} + +technique DynamicParameter +{ + pass P0 + { + VertexShader = compile vs_2_0 DynamicParameter_VertexShader4(); // 12 + PixelShader = compile ps_2_0 DynamicParameter_PixelShader3(); // 13 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + SrcBlend = 2; + DestBlend = 2; + ColorWriteEnable = 15; + AlphaTestEnable = 0; + } +} + +technique Textured +{ + pass P0 + { + VertexShader = compile vs_2_0 Textured_VertexShader2(); // 14 + PixelShader = compile ps_2_0 Textured_PixelShader1(); // 15 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaBlendEnable = 0; + ColorWriteEnable = 15; + AlphaTestEnable = 0; + } +} + diff --git a/stream.fx b/stream.fx new file mode 100644 index 0000000..5b191a7 --- /dev/null +++ b/stream.fx @@ -0,0 +1,756 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +texture Texture1 ; // 2 +sampler2D Texture1Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture Texture2 ; // 7 +sampler2D Texture2Sampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c14) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 14 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 18 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +column_major float4x3 World : World : register(vs_2_0, c11); +float Time : Time; +// Additive_M_PixelShader1 Pixel_2_0 Has PRES True +struct Additive_M_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float color : COLOR; +}; + +float4 Additive_M_PixelShader1(Additive_M_PixelShader1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // mul c11.x, c0.x, (0.1) + expr11.x = Time.x * (0.1); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.5, 0.75, -0.75, 0 + // dcl t0.xy + // dcl t3.xy + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t3, s2 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // add r0.x, r0.x, c0.z + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r1.w, r0.x, c0.w + temp1.w = max(temp0.x, float1(0)); + // add r0.x, r1.w, r1.w + temp0.x = temp1.w + temp1.w; + // mov r1.x, c0.x + temp1.x = float1(0.5); + // mad r1.xy, t0, r1.x, c11.x + temp1.xy = i.texcoord.xy * temp1.xx + expr11.xx; + // texld r1, r1, s1 + temp1 = tex2D(Texture2Sampler, temp1.xy); + // texld r2, t0, s0 + temp2 = tex2D(Texture1Sampler, i.texcoord.xy); + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mul r1, r1, v0.x + temp1 = temp1 * i.color.x; + // mul r1, r1, c0.y + temp1 = temp1 * float4(0.75, 0.75, 0.75, 0.75); + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Additive_M_VertexShader2 Vertex_2_0 Has PRES False +struct Additive_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 normal : NORMAL; +}; + +struct Additive_M_VertexShader2_Output +{ + float4 position : POSITION; + float3 color : COLOR; + float2 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; +}; + +Additive_M_VertexShader2_Output Additive_M_VertexShader2(Additive_M_VertexShader2_Input i) +{ + Additive_M_VertexShader2_Output o; + float4 temp0; + float3 temp1, temp2; + // def c0, 1, 0, -2, 3 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_normal v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v2, c11 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v2, c12 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v2, c13 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // add r0.xyz, -v0, c123 + temp0.xyz = -i.position.xyz + EyePosition.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // abs r0.x, r0.x + temp0.x = abs(temp0.x); + // min r0.x, r0.x, c0.x + temp0.x = min(temp0.x, float1(1)); + // mad r0.y, r0.x, c0.z, c0.w + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul oD0.xyz, r0.y, r0.x + o.color = temp0.y * temp0.x; + // add r0.xy, v0, c14.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0, c14 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Multiply_M_PixelShader3 Pixel_2_0 Has PRES True +struct Multiply_M_PixelShader3_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float color : COLOR; +}; + +float4 Multiply_M_PixelShader3(Multiply_M_PixelShader3_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // mul c11.x, c0.x, (0.1) + expr11.x = Time.x * (0.1); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.5, 0.75, -0.75, 0 + // dcl t0.xy + // dcl t3.xy + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t3, s2 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // add r0.x, r0.x, c0.z + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r1.w, r0.x, c0.w + temp1.w = max(temp0.x, float1(0)); + // add r0.x, r1.w, r1.w + temp0.x = temp1.w + temp1.w; + // mov r1.x, c0.x + temp1.x = float1(0.5); + // mad r1.xy, t0, r1.x, c11.x + temp1.xy = i.texcoord.xy * temp1.xx + expr11.xx; + // texld r1, r1, s1 + temp1 = tex2D(Texture2Sampler, temp1.xy); + // texld r2, t0, s0 + temp2 = tex2D(Texture1Sampler, i.texcoord.xy); + // mul r1, r1, r2 + temp1 = temp1 * temp2; + // mul r1, r1, v0.x + temp1 = temp1 * i.color.x; + // mul r1, r1, c0.y + temp1 = temp1 * float4(0.75, 0.75, 0.75, 0.75); + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Multiply_M_VertexShader4 Vertex_2_0 Has PRES False +struct Multiply_M_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 normal : NORMAL; +}; + +struct Multiply_M_VertexShader4_Output +{ + float4 position : POSITION; + float3 color : COLOR; + float2 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; +}; + +Multiply_M_VertexShader4_Output Multiply_M_VertexShader4(Multiply_M_VertexShader4_Input i) +{ + Multiply_M_VertexShader4_Output o; + float4 temp0; + float3 temp1, temp2; + // def c0, 1, 0, -2, 3 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_normal v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v2, c11 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v2, c12 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v2, c13 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // add r0.xyz, -v0, c123 + temp0.xyz = -i.position.xyz + EyePosition.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // abs r0.x, r0.x + temp0.x = abs(temp0.x); + // min r0.x, r0.x, c0.x + temp0.x = min(temp0.x, float1(1)); + // mad r0.y, r0.x, c0.z, c0.w + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul oD0.xyz, r0.y, r0.x + o.color = temp0.y * temp0.x; + // add r0.xy, v0, c14.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0, c14 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Additive_PixelShader5 Pixel_2_0 Has PRES True +struct Additive_PixelShader5_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float color : COLOR; +}; + +float4 Additive_PixelShader5(Additive_PixelShader5_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // mul c11.x, c0.x, (0.1) + expr11.x = Time.x * (0.1); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.5, 2.2, 0.75, -0.75 + // def c1, 0, 0, 0, 0 + // dcl t0.xy + // dcl t3.xy + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.w, c0.x + temp0.w = float1(0.5); + // mad r0.xy, t0, r0.w, c11.x + temp0.xy = i.texcoord.xy * temp0.ww + expr11.xx; + // texld r0, r0, s1 + temp0 = tex2D(Texture2Sampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture1Sampler, i.texcoord.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // log r2.w, r0.x + temp2.w = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.y, r0.z + temp2.y = log2(temp0.z); + // mul r2.yzw, r2, c0.y + temp2.yzw = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r0.x, r2.w + temp0.x = exp2(temp2.w); + // exp r0.y, r2.z + temp0.y = exp2(temp2.z); + // exp r0.z, r2.y + temp0.z = exp2(temp2.y); + // log r2.w, r1.x + temp2.w = log2(temp1.x); + // log r2.z, r1.y + temp2.z = log2(temp1.y); + // log r2.y, r1.z + temp2.y = log2(temp1.z); + // mul r2.yzw, r2, c0.y + temp2.yzw = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.w + temp1.x = exp2(temp2.w); + // exp r1.y, r2.z + temp1.y = exp2(temp2.z); + // exp r1.z, r2.y + temp1.z = exp2(temp2.y); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r0, r0, v0.x + temp0 = temp0 * i.color.x; + // mul r0, r0, c0.z + temp0 = temp0 * float4(0.75, 0.75, 0.75, 0.75); + // add r1.x, r2.x, c0.w + temp1.x = temp2.x + float1(-0.75); + // add r1.x, r1.x, r1.x + temp1.x = temp1.x + temp1.x; + // max r2.x, r1.x, c1.x + temp2.x = max(temp1.x, float1(0)); + // add r1.x, r2.x, r2.x + temp1.x = temp2.x + temp2.x; + // mul r0.xyz, r0, r1.x + temp0.xyz = temp0.xyz * temp1.xxx; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Additive_VertexShader6 Vertex_2_0 Has PRES False +struct Additive_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 normal : NORMAL; +}; + +struct Additive_VertexShader6_Output +{ + float4 position : POSITION; + float3 color : COLOR; + float2 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; +}; + +Additive_VertexShader6_Output Additive_VertexShader6(Additive_VertexShader6_Input i) +{ + Additive_VertexShader6_Output o; + float4 temp0; + float3 temp1, temp2; + // def c0, 1, 0, -2, 3 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_normal v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v2, c11 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v2, c12 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v2, c13 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // add r0.xyz, -v0, c123 + temp0.xyz = -i.position.xyz + EyePosition.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // abs r0.x, r0.x + temp0.x = abs(temp0.x); + // min r0.x, r0.x, c0.x + temp0.x = min(temp0.x, float1(1)); + // mad r0.y, r0.x, c0.z, c0.w + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul oD0.xyz, r0.y, r0.x + o.color = temp0.y * temp0.x; + // add r0.xy, v0, c14.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0, c14 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Multiply_PixelShader7 Pixel_2_0 Has PRES True +struct Multiply_PixelShader7_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord3 : TEXCOORD3; + float color : COLOR; +}; + +float4 Multiply_PixelShader7(Multiply_PixelShader7_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + // Expression_2_1 + // mul c11.x, c0.x, (0.1) + expr11.x = Time.x * (0.1); + } + + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 0.5, 2.2, 0.75, -0.75 + // def c1, 0, 0, 0, 0 + // dcl t0.xy + // dcl t3.xy + // dcl v0.x + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // mov r0.w, c0.x + temp0.w = float1(0.5); + // mad r0.xy, t0, r0.w, c11.x + temp0.xy = i.texcoord.xy * temp0.ww + expr11.xx; + // texld r0, r0, s1 + temp0 = tex2D(Texture2Sampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture1Sampler, i.texcoord.xy); + // texld r2, t3, s2 + temp2 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // log r2.w, r0.x + temp2.w = log2(temp0.x); + // log r2.z, r0.y + temp2.z = log2(temp0.y); + // log r2.y, r0.z + temp2.y = log2(temp0.z); + // mul r2.yzw, r2, c0.y + temp2.yzw = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r0.x, r2.w + temp0.x = exp2(temp2.w); + // exp r0.y, r2.z + temp0.y = exp2(temp2.z); + // exp r0.z, r2.y + temp0.z = exp2(temp2.y); + // log r2.w, r1.x + temp2.w = log2(temp1.x); + // log r2.z, r1.y + temp2.z = log2(temp1.y); + // log r2.y, r1.z + temp2.y = log2(temp1.z); + // mul r2.yzw, r2, c0.y + temp2.yzw = temp2.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.w + temp1.x = exp2(temp2.w); + // exp r1.y, r2.z + temp1.y = exp2(temp2.z); + // exp r1.z, r2.y + temp1.z = exp2(temp2.y); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r0, r0, v0.x + temp0 = temp0 * i.color.x; + // mul r0, r0, c0.z + temp0 = temp0 * float4(0.75, 0.75, 0.75, 0.75); + // add r1.x, r2.x, c0.w + temp1.x = temp2.x + float1(-0.75); + // add r1.x, r1.x, r1.x + temp1.x = temp1.x + temp1.x; + // max r2.x, r1.x, c1.x + temp2.x = max(temp1.x, float1(0)); + // add r1.x, r2.x, r2.x + temp1.x = temp2.x + temp2.x; + // mul r0.xyz, r0, r1.x + temp0.xyz = temp0.xyz * temp1.xxx; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Multiply_VertexShader8 Vertex_2_0 Has PRES False +struct Multiply_VertexShader8_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 normal : NORMAL; +}; + +struct Multiply_VertexShader8_Output +{ + float4 position : POSITION; + float3 color : COLOR; + float2 texcoord3 : TEXCOORD3; + float2 texcoord : TEXCOORD; +}; + +Multiply_VertexShader8_Output Multiply_VertexShader8(Multiply_VertexShader8_Input i) +{ + Multiply_VertexShader8_Output o; + float4 temp0; + float3 temp1, temp2; + // def c0, 1, 0, -2, 3 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_normal v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v2, c11 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v2, c12 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v2, c13 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // nrm r1.xyz, r0 + temp1.xyz = normalize(temp0.xyz).xyz; + // add r0.xyz, -v0, c123 + temp0.xyz = -i.position.xyz + EyePosition.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, r1 + temp0.x = dot(temp2.xyz, temp1.xyz); + // abs r0.x, r0.x + temp0.x = abs(temp0.x); + // min r0.x, r0.x, c0.x + temp0.x = min(temp0.x, float1(1)); + // mad r0.y, r0.x, c0.z, c0.w + temp0.y = temp0.x * float1(-2) + float1(3); + // mul r0.x, r0.x, r0.x + temp0.x = temp0.x * temp0.x; + // mul oD0.xyz, r0.y, r0.x + o.color = temp0.y * temp0.x; + // add r0.xy, v0, c14.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT3.xy, r0, c14 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Multiply +{ + pass pass0 + { + VertexShader = compile vs_2_0 Multiply_VertexShader8(); // 23 + PixelShader = compile ps_2_0 Multiply_PixelShader7(); // 24 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 3; + SrcBlend = 1; + DestBlend = 4; + } +} + +technique Additive +{ + pass pass0 + { + VertexShader = compile vs_2_0 Additive_VertexShader6(); // 25 + PixelShader = compile ps_2_0 Additive_PixelShader5(); // 26 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 3; + SrcBlend = 2; + DestBlend = 2; + } +} + +technique Multiply_M +{ + pass pass0 + { + VertexShader = compile vs_2_0 Multiply_M_VertexShader4(); // 27 + PixelShader = compile ps_2_0 Multiply_M_PixelShader3(); // 28 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 3; + SrcBlend = 1; + DestBlend = 4; + } +} + +technique Additive_M +{ + pass pass0 + { + VertexShader = compile vs_2_0 Additive_M_VertexShader2(); // 29 + PixelShader = compile ps_2_0 Additive_M_PixelShader1(); // 30 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 3; + SrcBlend = 2; + DestBlend = 2; + } +} + diff --git a/swarmparticle.fx b/swarmparticle.fx new file mode 100644 index 0000000..9c2239a --- /dev/null +++ b/swarmparticle.fx @@ -0,0 +1,326 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +float3 PhaseOffset : register(vs_2_0, c21) ; +float PhaseOpacity : register(vs_2_0, c22) = { 1 }; +column_major float4x4 View : View : register(vs_2_0, c15); +column_major float4x3 ViewInverse : ViewInverse : register(vs_2_0, c18); +column_major float4x4 WorldViewProjection : WorldViewProjection : register(vs_2_0, c11); +float OpaqueSpeed : register(vs_2_0, c23) ; +float TransparentSpeed = { 100 }; +float SpeedStretchAmount : register(vs_2_0, c24) = { 1 }; +texture DiffuseTexture ; // 9 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 12 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture EnvironmentTexture ; // 16 +sampler2D EnvironmentTextureSampler = +sampler_state +{ + Texture = ; // 19 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c25) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 25 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 29 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +// Default_PixelShader1 Pixel_2_0 Has PRES False +struct Default_PixelShader1_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord1 : TEXCOORD1; + float2 texcoord3 : TEXCOORD3; +}; + +float4 Default_PixelShader1(Default_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, 2, 1, -0.75, 0 + // def c1, 0.9, 1.8, 10, -1 + // dcl v0 + // dcl v1 + // dcl t1.xy + // dcl t3.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t3, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord3.xy); + // texld r1, t1, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord1.xy); + // add r0.x, r0.x, c0.z + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.w + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mad r0.yzw, r1.wzyx, c1.wzyx, c1.w + temp0.yzw = temp1.zyx * float3(10, 1.8, 0.9) + float3(-1, -1, -1); + // mul r1.w, r1.w, c0.x + temp1.w = temp1.w * float1(2); + // mad r0.yzw, v1.w, r0, c0.y + temp0.yzw = i.color1.www * temp0.yzw + float3(1, 1, 1); + // mul r1.xyz, r0.x, r0.wzyx + temp1.xyz = temp0.xxx * temp0.wzy; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Default_VertexShader2 Vertex_2_0 Has PRES True +struct Default_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +struct Default_VertexShader2_Output +{ + float4 color : COLOR; + float4 position : POSITION; + float4 color1 : COLOR1; + float2 texcoord2 : TEXCOORD2; + float2 texcoord3 : TEXCOORD3; + float2 texcoord1 : TEXCOORD1; +}; + +Default_VertexShader2_Output Default_VertexShader2(Default_VertexShader2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 26 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 26 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr26; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // neg r0.x, c0.x + temp0.x = -OpaqueSpeed.x; + // add r1.x, r0.x, c1.x + temp1.x = temp0.x + TransparentSpeed.x; + // rcp c26.x, r1.x + expr26.x = 1.0f / (temp1.x); + } + + Default_VertexShader2_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 1, 0, 2, -1 + // def c1, 0.5, 0.7, -0.5, 0.4 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_texcoord1 v2 + // dp3 r0.x, v2, v2 + temp0.x = dot(i.texcoord1.xyz, i.texcoord1.xyz); + // rsq r0.x, r0.x + temp0.x = 1 / sqrt(temp0.x); + // rcp r0.x, r0.x + temp0.x = 1.0f / temp0.x; + // add r0.y, r0.x, -c23.x + temp0.y = temp0.x + -OpaqueSpeed.x; + // mov r1.x, c1.x + temp1.x = float1(0.5); + // mad r0.x, r0.x, c24.x, r1.x + temp0.x = temp0.x * SpeedStretchAmount.x + temp1.x; + // mul r0.y, r0.y, c26.x + temp0.y = temp0.y * expr26.x; + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // min r0.y, r0.y, c0.x + temp0.y = min(temp0.y, float1(1)); + // add r0.y, -r0.y, c0.x + temp0.y = -temp0.y + float1(1); + // mul oD0.w, r0.y, c22.x + o.color.w = temp0.y * PhaseOpacity.x; + // mad r0.yz, v1.xxyw, c0.z, c0.w + temp0.yz = i.texcoord.xy * float2(2, 2) + float2(-1, -1); + // mul r0.y, r0.y, c1.x + temp0.y = temp0.y * float1(0.5); + // mov r1.xyz, v2 + temp1.xyz = i.texcoord1.xyz; + // add r1.xyz, r1, v0 + temp1.xyz = temp1.xyz + i.position.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r2.x, r1, c15 + temp2.x = dot(temp1, (View._m00_m10_m20_m30)); + // dp4 r2.y, r1, c16 + temp2.y = dot(temp1, (View._m01_m11_m21_m31)); + // dp4 r2.z, r1, c17 + temp2.z = dot(temp1, (View._m02_m12_m22_m32)); + // mad r1, v0.xyzx, c0.xxxy, c0.yyyx + temp1 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r3.x, r1, c15 + temp3.x = dot(temp1, (View._m00_m10_m20_m30)); + // dp4 r3.y, r1, c16 + temp3.y = dot(temp1, (View._m01_m11_m21_m31)); + // dp4 r3.z, r1, c17 + temp3.z = dot(temp1, (View._m02_m12_m22_m32)); + // add r1.xyz, r2, -r3 + temp1.xyz = temp2.xyz + -temp3.xyz; + // nrm r2.xyz, r1 + temp2.xyz = normalize(temp1.xyz).xyz; + // mul r1.xyz, r3.yzxw, r2.zxyw + temp1.xyz = temp3.yzx * temp2.zxy; + // mad r1.xyz, r2.yzxw, r3.zxyw, -r1 + temp1.xyz = temp2.yzx * temp3.zxy + -temp1.xyz; + // nrm r4.xyz, r1 + temp4.xyz = normalize(temp1.xyz).xyz; + // mad r1.xyz, r0.y, r4, r3 + temp1.xyz = temp0.yyy * temp4.xyz + temp3.xyz; + // mul r0.yzw, r0.z, r2.xxyz + temp0.yzw = temp0.zzz * temp2.xyz; + // mad r0.xyz, r0.x, r0.yzww, r1 + temp0.xyz = temp0.xxx * temp0.yzw + temp1.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.x, r0, c18 + temp1.x = dot(temp0, (ViewInverse._m00_m10_m20_m30)); + // dp4 r1.y, r0, c19 + temp1.y = dot(temp0, (ViewInverse._m01_m11_m21_m31)); + // dp4 r1.z, r0, c20 + temp1.z = dot(temp0, (ViewInverse._m02_m12_m22_m32)); + // add r0.xyz, r1, c21 + temp0.xyz = temp1.xyz + PhaseOffset.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c11 + o.position.x = dot(temp0, (WorldViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c12 + o.position.y = dot(temp0, (WorldViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c13 + o.position.z = dot(temp0, (WorldViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c14 + o.position.w = dot(temp0, (WorldViewProjection._m03_m13_m23_m33)); + // add r0.xy, r0, c25.zwzw + temp0.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mov r1.xyz, c5 + temp1.xyz = DirectionalLight[0].Color.xyz; + // add r1.xyz, r1, c7 + temp1.xyz = temp1.xyz + DirectionalLight[1].Color.xyz; + // add r1.xyz, r1, c9 + temp1.xyz = temp1.xyz + DirectionalLight[2].Color.xyz; + // mul oD1.xyz, r1, c1.y + o.color1.xyz = temp1.xyz * float3(0.7, 0.7, 0.7); + // mul r1.xyz, r2.yzxw, r4.zxyw + temp1.xyz = temp2.yzx * temp4.zxy; + // mad r1.xyz, r4.yzxw, r2.zxyw, -r1 + temp1.xyz = temp4.yzx * temp2.zxy + -temp1.xyz; + // add r0.zw, v1.xyxy, c1.z + temp0.zw = i.texcoord.xy + float2(-0.5, -0.5); + // mul r0.zw, r0, c1.w + temp0.zw = temp0.zw * float2(0.4, 0.4); + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // mad r2.xyz, r0.z, r4, r2 + temp2.xyz = temp0.zzz * temp4.xyz + temp2.xyz; + // mad r0.z, r0.z, -r0.z, c0.x + temp0.z = temp0.z * -temp0.z + float1(1); + // mad r0.z, r0.w, r0.w, r0.z + temp0.z = temp0.w * temp0.w + temp0.z; + // rsq r0.z, r0.z + temp0.z = 1 / sqrt(temp0.z); + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // mad r1.xyz, r0.z, r1, r2 + temp1.xyz = temp0.zzz * temp1.xyz + temp2.xyz; + // dp3 r0.z, r1, r1 + temp0.z = dot(temp1.xyz, temp1.xyz); + // rsq r0.z, r0.z + temp0.z = 1 / sqrt(temp0.z); + // mul r0.zw, r1.xyxy, r0.z + temp0.zw = temp1.xy * temp0.zz; + // mad oT2.xy, r0.zwzw, c1.x, c1.x + o.texcoord2 = temp0.zwzw * float4(0.5, 0.5, 0.5, 0.5) + float4(0.5, 0.5, 0.5, 0.5); + // mul oT3.xy, r0, c25 + o.texcoord3 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0.xyz, c0.x + o.color.xyz = float3(1, 1, 1); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT1.xy, v1 + o.texcoord1 = i.texcoord; + // + + return o; +} + +technique Default +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_VertexShader2(); // 34 + PixelShader = compile ps_2_0 Default_PixelShader1(); // 35 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + AlphaBlendEnable = 1; + CullMode = 1; + SrcBlend = 2; + DestBlend = 2; + } +} + diff --git a/terrain.fx b/terrain.fx new file mode 100644 index 0000000..ac2e72c --- /dev/null +++ b/terrain.fx @@ -0,0 +1,6054 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(ps_3_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights : register(ps_3_0, i0) ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[6] : register(ps_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(ps_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] ; +float2 MapCellSize = { 10, 10 }; +texture MacroSampler ; // 6 +sampler2D MacroSamplerSampler : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 10 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +int _SasGlobal : SasGlobal ; +texture BaseSamplerClamped ; // 16 +sampler2D BaseSamplerClampedSampler = +sampler_state +{ + Texture = ; // 19 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 3; + AddressV = 3; +}; +texture BaseSamplerClamped_L ; // 23 +sampler2D BaseSamplerClamped_LSampler = +sampler_state +{ + Texture = ; // 26 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + MaxAnisotropy = 1; + AddressU = 3; + AddressV = 3; +}; +texture BaseSamplerWrapped ; // 30 +sampler2D BaseSamplerWrappedSampler = +sampler_state +{ + Texture = ; // 33 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +texture BaseSamplerWrapped_L ; // 37 +sampler2D BaseSamplerWrapped_LSampler = +sampler_state +{ + Texture = ; // 40 + MinFilter = 2; + MagFilter = 2; + MipFilter = 1; + MaxAnisotropy = 1; + AddressU = 1; + AddressV = 1; +}; +texture NormalSamplerClamped ; // 44 +sampler2D NormalSamplerClampedSampler = +sampler_state +{ + Texture = ; // 47 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 3; + AddressV = 3; +}; +texture NormalSamplerWrapped ; // 51 +sampler2D NormalSamplerWrappedSampler = +sampler_state +{ + Texture = ; // 54 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) : register(vs_3_0, c11) = { 1, 1, 0, 0 }; +texture ShroudSampler ; // 60 +sampler2D ShroudSamplerSampler : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 63 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudSampler ; // 67 +sampler2D CloudSamplerSampler : register(ps_2_0, s3) : register(ps_3_0, s4) = +sampler_state +{ + Texture = ; // 71 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool IsTerrainAtlasEnabled ; +bool HasShadow ; +texture ShadowMap ; // 80 +sampler2D ShadowMapSampler : register(ps_2_0, s4) : register(ps_3_0, s5) = +sampler_state +{ + Texture = ; // 83 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) ; +float Time : Time; +// VS_TerrainTile_Array_Shader_0 Vertex_3_0 Has PRES False +struct VS_TerrainTile_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_TerrainTile_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +VS_TerrainTile_Array_Shader_0_Output VS_TerrainTile_Array_Shader_0(VS_TerrainTile_Array_Shader_0_Input i) +{ + VS_TerrainTile_Array_Shader_0_Output o; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 1, 0, -1, 0.5 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2.x + // dcl_texcoord o3 + // dcl_texcoord1 o4 + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xyz + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1.xyz, c0.xyyw, v1.zxyw + temp1.xyz = float3(1, 0, 0) * i.normal.zxy; + // mad r1.xyz, v1.yzxw, c0.yyxw, -r1 + temp1.xyz = i.normal.yzx * float3(0, 0, 1) + -temp1.xyz; + // dp3 o7.x, c6, -r1 + o.texcoord4.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2.xyz, c0.yyzw, v1.zxyw + temp2.xyz = float3(0, 0, -1) * i.normal.zxy; + // mad r2.xyz, v1.yzxw, c0.yzyw, -r2 + temp2.xyz = i.normal.yzx * float3(0, -1, 0) + -temp2.xyz; + // dp3 o7.y, c6, -r2 + o.texcoord4.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r1.w, c6, v1 + temp1.w = dot(DirectionalLight[0].Direction.xyz, i.normal.xyz); + // max o7.w, r1.w, c0.y + o.texcoord4.w = max(temp1.w, float1(0)); + // mov o7.z, r1.w + o.texcoord4.z = temp1.w; + // add r3.xyz, c123, -v0 + temp3.xyz = EyePosition.xyz + -i.position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r3.xyz, r3, r1.w, c6 + temp3.xyz = temp3.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r3, -r1 + temp1.x = dot(temp3.xyz, -temp1.xyz); + // dp3 r1.y, r3, -r2 + temp1.y = dot(temp3.xyz, -temp2.xyz); + // dp3 r1.z, r3, v1 + temp1.z = dot(temp3.xyz, i.normal.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o8.xyz, r1, r1.w + o.texcoord5 = temp1 * temp1.w; + // dp3 r1.x, v1, c10 + temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c9 + temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz; + // dp3 r1.w, v1, c8 + temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz); + // max r1.w, r1.w, c0.y + temp1.w = max(temp1.w, float1(0)); + // mad r1.xyz, c7, r1.w, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul o1.xyz, r1, c0.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, c11.zwzw, v0 + temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy; + // mul o5.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 o9.x, r0, c113 + o.texcoord6.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 o9.y, r0, c114 + o.texcoord6.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 o9.z, r0, c115 + o.texcoord6.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 o9.w, r0, c116 + o.texcoord6.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov o1.w, c0.x + o.color.w = float1(1); + // mov o2.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // mov o3.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov o3.zw, c0.y + o.texcoord.zw = float2(0, 0); + // mov o4, c0.y + o.texcoord1 = float4(0, 0, 0, 0); + // mov o6.xyz, v0 + o.texcoord3 = i.position; + // + + return o; +} + +// VS_TerrainTile_Array_Shader_1 Vertex_3_0 Has PRES False +struct VS_TerrainTile_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +struct VS_TerrainTile_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +VS_TerrainTile_Array_Shader_1_Output VS_TerrainTile_Array_Shader_1(VS_TerrainTile_Array_Shader_1_Input i) +{ + VS_TerrainTile_Array_Shader_1_Output o; + float4 temp0, temp1; + float3 temp2, temp3, temp4; + // def c0, 0.01, -1, 3.333333E-05, -0 + // def c1, 0, -1, 0.5, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_texcoord2 v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2.x + // dcl_texcoord o3 + // dcl_texcoord1 o4 + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xyz + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9 + // mul o3.xy, c0.z, v2 + o.texcoord.xy = float2(3.3333334E-05, 3.3333334E-05) * i.texcoord.xy; + // mul o4.xy, c0.z, v3 + o.texcoord1.xy = float2(3.3333334E-05, 3.3333334E-05) * i.texcoord1.xy; + // mul o4.zw, c0.z, v4.xyyx + o.texcoord1.zw = float2(3.3333334E-05, 3.3333334E-05) * i.texcoord2.yx; + // add o3.w, c0.y, v0.w + o.texcoord.w = float1(-1) + i.position.w; + // add o3.z, c0.y, v1.w + o.texcoord.z = float1(-1) + i.normal.w; + // mad r0, v0.xyzx, -c0.yyyw, -c0.wwwy + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1.xyz, v1, c0.x, c0.y + temp1.xyz = i.normal.xyz * float3(0.01, 0.01, 0.01) + float3(-1, -1, -1); + // mul r2.xyz, r1.zxyw, -c0.ywww + temp2.xyz = temp1.zxy * float3(1, 0, 0); + // mad r2.xyz, r1.yzxw, -c0.wwyw, -r2 + temp2.xyz = temp1.yzx * float3(0, 0, 1) + -temp2.xyz; + // dp3 o7.x, c6, -r2 + o.texcoord4.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mul r3.xyz, r1.zxyw, c1.xxyw + temp3.xyz = temp1.zxy * float3(0, 0, -1); + // mad r3.xyz, r1.yzxw, c1.xyxw, -r3 + temp3.xyz = temp1.yzx * float3(0, -1, 0) + -temp3.xyz; + // dp3 o7.y, c6, -r3 + o.texcoord4.y = dot(DirectionalLight[0].Direction.xyz, -temp3.xyz); + // dp3 r1.w, c6, r1 + temp1.w = dot(DirectionalLight[0].Direction.xyz, temp1.xyz); + // max o7.w, r1.w, -c0.w + o.texcoord4.w = max(temp1.w, float1(0)); + // mov o7.z, r1.w + o.texcoord4.z = temp1.w; + // add r4.xyz, c123, -v0 + temp4.xyz = EyePosition.xyz + -i.position.xyz; + // dp3 r1.w, r4, r4 + temp1.w = dot(temp4.xyz, temp4.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r4.xyz, r4, r1.w, c6 + temp4.xyz = temp4.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r2.x, r4, -r2 + temp2.x = dot(temp4.xyz, -temp2.xyz); + // dp3 r2.y, r4, -r3 + temp2.y = dot(temp4.xyz, -temp3.xyz); + // dp3 r2.z, r4, r1 + temp2.z = dot(temp4.xyz, temp1.xyz); + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o8.xyz, r2, r1.w + o.texcoord5 = temp2 * temp1.w; + // dp3 r1.w, r1, c10 + temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.x, r1, c8 + temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r1.y, r1.w, -c0.w + temp1.y = max(temp1.w, float1(0)); + // mul r1.yzw, r1.y, c9.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz; + // max r1.x, r1.x, -c0.w + temp1.x = max(temp1.x, float1(0)); + // mad r1.xyz, c7, r1.x, r1.yzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul o1.xyz, r1, c1.z + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, c11.zwzw, v0 + temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy; + // mul o5.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // mov o1.w, -c0.y + o.color.w = float1(1); + // mov o2.x, -c0.y + o.color1 = float4(1, 1, 1, 1); + // mov o6.xyz, v0 + o.texcoord3 = i.position; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o9.w, r0.x + o.texcoord6.w = temp0.x; + // mad o9.xyz, r1, r0.y, c1.xxww + o.texcoord6.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_TerrainTile_Array[2] = { + compile vs_3_0 VS_TerrainTile_Array_Shader_0(), // 89 + compile vs_3_0 VS_TerrainTile_Array_Shader_1(), // 90 +}; +// PS_TerrainTile_Array_Shader_0 Pixel_3_0 Has PRES True +struct PS_TerrainTile_Array_Shader_0_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_TerrainTile_Array_Shader_0(PS_TerrainTile_Array_Shader_0_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c11.x, r0.x + expr11.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + // def c0, 0.75, 0, 1, -1 + // def c1, -2, -3, -4, -5 + // def c2, 1, -1, 2.2, 2 + // def c3, 40, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5_centroid v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v4.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v4, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c2 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c11.x + temp1.zw = temp2.xy * expr11.xx; + // mul r1.zw, r1, v4.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c2.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r0, v2, s2 + temp0 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy); + // mad r0.xy, r0, c2.w, c2.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // mad r0.w, r0.x, -r0.x, c2.x + temp0.w = temp0.x * -temp0.x + float1(1); + // mad r0.w, r0.y, -r0.y, r0.w + temp0.w = temp0.y * -temp0.y + temp0.w; + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r3.z, r0.w + temp3.z = 1.0f / temp0.w; + // mul r3.xy, r0, c0.x + temp3.xy = temp0.xy * float2(0.75, 0.75); + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // mov r0.xyw, v0.xyzz + temp0.xyw = i.color.xyz; + // mov r3.x, c0.y + temp3.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r3.x, c1 + temp5 = temp3.x + float4(-2, -3, -4, -5); + // add r3.xyz, r3.x, -c0.wyzw + temp3.xyz = temp3.xxx + float3(1, -0, -1); + // mov r6.y, c0.y + temp6.y = float1(0); + // cmp r6.xzw, -r3_abs.y, c89.xyyz, r6.y + temp6.xzw = (-abs(temp3).yyy >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r3_abs.y, c90, r6.y + temp7.xyz = (-abs(temp3).yyy >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r3.yw, -r3_abs.y, c91.xxzy, r6.y + temp3.yw = (-abs(temp3).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r3_abs.z, c92, r6.xzww + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r3_abs.z, c93, r7 + temp7.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r3.yz, -r3_abs.z, c94.xxyw, r3.xyww + temp3.yz = (-abs(temp3).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp3.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.x, c97.xxyw, r3 + temp3.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.y, c100.xxyw, r3 + temp3.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.z, c103.xxyw, r3 + temp3.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.w, c106.xxyw, r3 + temp3.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.yz; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r3.y, r3.w + temp2.w = -temp3.y + temp3.w; + // add r3.y, -r3.y, r3.z + temp3.y = -temp3.y + temp3.z; + // rcp r3.y, r3.y + temp3.y = 1.0f / temp3.y; + // mad_sat r2.w, r2.w, -r3.y, c2.x + temp2.w = saturate(temp2.w * -temp3.y + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.yzw, r5.xxyz, r2.w + temp3.yzw = temp5.xyz * temp2.www; + // dp3 r2.w, r4, r6 + temp2.w = dot(temp4.xyz, temp6.xyz); + // max r4.w, r2.w, c0.y + temp4.w = max(temp2.w, float1(0)); + // mad r0.xyw, r3.yzzw, r4.w, r0 + temp0.xyw = temp3.yzw * temp4.www + temp0.xyw; + // endrep + } + // mul r0.xyw, r2.xyzz, r0 + temp0.xyw = temp2.xyz * temp0.xyw; + // add r0.xyw, r0, r0 + temp0.xyw = temp0.xyw + temp0.xyw; + // dp3 r2.w, r4, v5 + temp2.w = dot(temp4.xyz, i.texcoord4.xyz); + // dp3 r3.x, r4, v6 + temp3.x = dot(temp4.xyz, i.texcoord5.xyz); + // cmp r3.y, -r2.w, c0.y, c0.z + temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1); + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // cmp r3.z, -r3.x, c0.y, c0.z + temp3.z = (-temp3.x >= 0) ? float1(0) : float1(1); + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c3.x + temp4.x = pow(temp3.x, float1(40)); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // texld r4, r1, s4 + temp4 = tex2D(CloudSamplerSampler, temp1.xy); + // log r3.y, r4.x + temp3.y = log2(temp4.x); + // log r3.z, r4.y + temp3.z = log2(temp4.y); + // log r3.w, r4.z + temp3.w = log2(temp4.z); + // mul r3.yzw, r3, c2.z + temp3.yzw = temp3.yzw * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.y + temp4.x = exp2(temp3.y); + // exp r4.y, r3.z + temp4.y = exp2(temp3.z); + // exp r4.z, r3.w + temp4.z = exp2(temp3.w); + // mul r3.yzw, r4.xxyz, c5.xxyz + temp3.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // dp2add r0.z, r3.x, r0.z, c0.y + temp0.z = dot(temp3.xx, temp0.zz) + float1(0); + // mad r2.xyz, r2.w, r2, r0.z + temp2.xyz = temp2.www * temp2.xyz + temp0.zzz; + // mad r0.xyz, r3.yzww, r2, r0.xyww + temp0.xyz = temp3.yzw * temp2.xyz + temp0.xyw; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c2.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c2.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c2.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_TerrainTile_Array_Shader_1 Pixel_3_0 Has PRES True +struct PS_TerrainTile_Array_Shader_1_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_TerrainTile_Array_Shader_1(PS_TerrainTile_Array_Shader_1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + // def c0, 0.75, 0, 1, -1 + // def c1, -2, -3, -4, -5 + // def c2, 40, -0.0015, 0.25, 0 + // def c3, 1, -1, 2.2, 2 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5_centroid v6.xyz + // dcl_texcoord6 v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v4.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v4, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c3 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c12.x + temp1.zw = temp2.xy * expr12.xx; + // mul r1.zw, r1, v4.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c3.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r0, v2, s2 + temp0 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy); + // mad r0.xy, r0, c3.w, c3.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // mad r0.w, r0.x, -r0.x, c3.x + temp0.w = temp0.x * -temp0.x + float1(1); + // mad r0.w, r0.y, -r0.y, r0.w + temp0.w = temp0.y * -temp0.y + temp0.w; + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r3.z, r0.w + temp3.z = 1.0f / temp0.w; + // mul r3.xy, r0, c0.x + temp3.xy = temp0.xy * float2(0.75, 0.75); + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // mov r0.xyw, v0.xyzz + temp0.xyw = i.color.xyz; + // mov r3.x, c0.y + temp3.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r3.x, c1 + temp5 = temp3.x + float4(-2, -3, -4, -5); + // add r3.xyz, r3.x, -c0.wyzw + temp3.xyz = temp3.xxx + float3(1, -0, -1); + // mov r6.y, c0.y + temp6.y = float1(0); + // cmp r6.xzw, -r3_abs.y, c89.xyyz, r6.y + temp6.xzw = (-abs(temp3).yyy >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r3_abs.y, c90, r6.y + temp7.xyz = (-abs(temp3).yyy >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r3.yw, -r3_abs.y, c91.xxzy, r6.y + temp3.yw = (-abs(temp3).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r3_abs.z, c92, r6.xzww + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r3_abs.z, c93, r7 + temp7.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r3.yz, -r3_abs.z, c94.xxyw, r3.xyww + temp3.yz = (-abs(temp3).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp3.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.x, c97.xxyw, r3 + temp3.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.y, c100.xxyw, r3 + temp3.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.z, c103.xxyw, r3 + temp3.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.w, c106.xxyw, r3 + temp3.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.yz; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r3.y, r3.w + temp2.w = -temp3.y + temp3.w; + // add r3.y, -r3.y, r3.z + temp3.y = -temp3.y + temp3.z; + // rcp r3.y, r3.y + temp3.y = 1.0f / temp3.y; + // mad_sat r2.w, r2.w, -r3.y, c3.x + temp2.w = saturate(temp2.w * -temp3.y + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.yzw, r5.xxyz, r2.w + temp3.yzw = temp5.xyz * temp2.www; + // dp3 r2.w, r4, r6 + temp2.w = dot(temp4.xyz, temp6.xyz); + // max r4.w, r2.w, c0.y + temp4.w = max(temp2.w, float1(0)); + // mad r0.xyw, r3.yzzw, r4.w, r0 + temp0.xyw = temp3.yzw * temp4.www + temp0.xyw; + // endrep + } + // mul r0.xyw, r2.xyzz, r0 + temp0.xyw = temp2.xyz * temp0.xyw; + // add r0.xyw, r0, r0 + temp0.xyw = temp0.xyw + temp0.xyw; + // dp3 r2.w, r4, v5 + temp2.w = dot(temp4.xyz, i.texcoord4.xyz); + // dp3 r3.x, r4, v6 + temp3.x = dot(temp4.xyz, i.texcoord5.xyz); + // cmp r3.y, -r2.w, c0.y, c0.z + temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1); + // mul r3.z, r2.w, r3.y + temp3.z = temp2.w * temp3.y; + // cmp r2.w, -r3.x, c0.y, c0.z + temp2.w = (-temp3.x >= 0) ? float1(0) : float1(1); + // mul r2.w, r3.y, r2.w + temp2.w = temp3.y * temp2.w; + // pow r4.x, r3.x, c2.x + temp4.x = pow(temp3.x, float1(40)); + // mul r3.w, r2.w, r4.x + temp3.w = temp2.w * temp4.x; + // rcp r2.w, v7.w + temp2.w = 1.0f / i.texcoord6.w; + // mul r3.xy, r2.w, v7 + temp3.xy = temp2.ww * i.texcoord6.xy; + // mad r4.x, v7.z, r2.w, c2.y + temp4.x = i.texcoord6.z * temp2.w + float1(-0.0015); + // texld r5, r3, s5 + temp5 = tex2D(ShadowMapSampler, temp3.xy); + // mad r3.xy, v7, r2.w, c11.zxzw + temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // texld r6, r3, s5 + temp6 = tex2D(ShadowMapSampler, temp3.xy); + // mad r3.xy, v7, r2.w, c11.yzzw + temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // texld r7, r3, s5 + temp7 = tex2D(ShadowMapSampler, temp3.xy); + // mad r3.xy, v7, r2.w, c11.wzzw + temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r8, r3, s5 + temp8 = tex2D(ShadowMapSampler, temp3.xy); + // mov r5.y, r6.x + temp5.y = temp6.x; + // mov r5.z, r7.x + temp5.z = temp7.x; + // mov r5.w, r8.x + temp5.w = temp8.x; + // add r4, -r4.x, r5 + temp4 = -temp4.x + temp5; + // cmp r4, r4, c0.z, c0.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r2.w, c3.x, r4 + temp2.w = dot(float4(1, 1, 1, 1), temp4); + // mul r2.w, r2.w, c2.z + temp2.w = temp2.w * float1(0.25); + // mul r3.xy, r3.zwzw, r2.w + temp3.xy = temp3.zw * temp2.ww; + // texld r4, r1, s4 + temp4 = tex2D(CloudSamplerSampler, temp1.xy); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.z + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // dp2add r0.z, r3.y, r0.z, c0.y + temp0.z = dot(temp3.yy, temp0.zz) + float1(0); + // mad r2.xyz, r3.x, r2, r0.z + temp2.xyz = temp3.xxx * temp2.xyz + temp0.zzz; + // mad r0.xyz, r4, r2, r0.xyww + temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyw; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c3.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c3.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c3.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_TerrainTile_Array_Shader_2 Pixel_3_0 Has PRES True +struct PS_TerrainTile_Array_Shader_2_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_TerrainTile_Array_Shader_2(PS_TerrainTile_Array_Shader_2_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c11.x, r0.x + expr11.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + // def c0, -2, -3, -4, -5 + // def c1, 0.75, 1, 0, -1 + // def c2, 1, -1, 2.2, 2 + // def c3, 40, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xyz + // dcl_texcoord4 v6.xyz + // dcl_texcoord5_centroid v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v5.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v5, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c2 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c11.x + temp1.zw = temp2.xy * expr11.xx; + // mul r1.zw, r1, v5.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // mov_sat r2.xy, v2.wzzw + temp2.xy = saturate(i.texcoord.wz); + // texld r3, v3, s1 + temp3 = tex2D(BaseSamplerClampedSampler, i.texcoord1.xy); + // texld r4, v3.wzzw, s1 + temp4 = tex2D(BaseSamplerClampedSampler, i.texcoord1.wz); + // lrp r5, r2.x, r3, r0 + temp5 = lerp(temp0, temp3, temp2.x); + // lrp r0, r2.y, r4, r5 + temp0 = lerp(temp5, temp4, temp2.y); + // log r3.x, r0.x + temp3.x = log2(temp0.x); + // log r3.y, r0.y + temp3.y = log2(temp0.y); + // log r3.z, r0.z + temp3.z = log2(temp0.z); + // mul r0.xyz, r3, c2.z + temp0.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r0.x + temp3.x = exp2(temp0.x); + // exp r3.y, r0.y + temp3.y = exp2(temp0.y); + // exp r3.z, r0.z + temp3.z = exp2(temp0.z); + // texld r4, v2, s2 + temp4 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy); + // texld r5, v3, s2 + temp5 = tex2D(NormalSamplerClampedSampler, i.texcoord1.xy); + // texld r6, v3.wzzw, s2 + temp6 = tex2D(NormalSamplerClampedSampler, i.texcoord1.wz); + // lrp r0.xyz, r2.x, r5, r4 + temp0.xyz = lerp(temp4.xyz, temp5.xyz, temp2.xxx); + // lrp r4.xyz, r2.y, r6, r0 + temp4.xyz = lerp(temp0.xyz, temp6.xyz, temp2.yyy); + // mad r0.xyz, r4, c2.w, c2.y + temp0.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c1.xxyw + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1); + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mov r4.x, c1.z + temp4.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r4.x, c0 + temp5 = temp4.x + float4(-2, -3, -4, -5); + // add r4.xyz, r4.x, -c1.wzyw + temp4.xyz = temp4.xxx + float3(1, -0, -1); + // mov r6.z, c1.z + temp6.z = float1(0); + // cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z + temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz; + // cmp r7.xyz, -r4_abs.y, c90, r6.z + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz; + // cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z + temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz; + // cmp r6.xyz, -r4_abs.z, c92, r6.xyww + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw; + // cmp r7.xyz, -r4_abs.z, c93, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww + temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.x, c97.xxyw, r4 + temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.y, c100.xxyw, r4 + temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.z, c103.xxyw, r4 + temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.w, c106.xxyw, r4 + temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz; + // add r6.xyz, r6, -v5 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.y, r3.w + temp2.w = -temp4.y + temp3.w; + // add r3.w, -r4.y, r4.z + temp3.w = -temp4.y + temp4.z; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c2.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.yzw, r5.xxyz, r2.w + temp4.yzw = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c1.z + temp3.w = max(temp2.w, float1(0)); + // mad r0.xyz, r4.yzww, r3.w, r0 + temp0.xyz = temp4.yzw * temp3.www + temp0.xyz; + // endrep + } + // mul r0.xyz, r3, r0 + temp0.xyz = temp3.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // dp3 r2.w, r2, v6 + temp2.w = dot(temp2.xyz, i.texcoord4.xyz); + // dp3 r2.x, r2, v7 + temp2.x = dot(temp2.xyz, i.texcoord5.xyz); + // cmp r2.y, -r2.w, c1.z, c1.y + temp2.y = (-temp2.w >= 0) ? float1(0) : float1(1); + // mul r2.z, r2.w, r2.y + temp2.z = temp2.w * temp2.y; + // cmp r2.w, -r2.x, c1.z, c1.y + temp2.w = (-temp2.x >= 0) ? float1(0) : float1(1); + // mul r2.y, r2.y, r2.w + temp2.y = temp2.y * temp2.w; + // pow r3.w, r2.x, c3.x + temp3.w = pow(temp2.x, float1(40)); + // mul r2.x, r2.y, r3.w + temp2.x = temp2.y * temp3.w; + // texld r4, r1, s4 + temp4 = tex2D(CloudSamplerSampler, temp1.xy); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c2.z + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // dp2add r0.w, r2.x, r0.w, c1.z + temp0.w = dot(temp2.xx, temp0.ww) + float1(0); + // mad r2.xyz, r2.z, r3, r0.w + temp2.xyz = temp2.zzz * temp3.xyz + temp0.www; + // mad r0.xyz, r4, r2, r0 + temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyz; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c2.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c2.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c2.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_TerrainTile_Array_Shader_3 Pixel_3_0 Has PRES True +struct PS_TerrainTile_Array_Shader_3_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_TerrainTile_Array_Shader_3(PS_TerrainTile_Array_Shader_3_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, -2, -3, -4, -5 + // def c1, 40, 0.25, 0, 0 + // def c2, 0.75, 1, 0, -1 + // def c3, 1, -1, 2.2, 2 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_texcoord2 v4.xy + // dcl_texcoord3 v5.xyz + // dcl_texcoord4 v6.xyz + // dcl_texcoord5_centroid v7.xyz + // dcl_texcoord6 v8.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v5.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v5, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c3 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c12.x + temp1.zw = temp2.xy * expr12.xx; + // mul r1.zw, r1, v5.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // mov_sat r2.xy, v2.wzzw + temp2.xy = saturate(i.texcoord.wz); + // texld r3, v3, s1 + temp3 = tex2D(BaseSamplerClampedSampler, i.texcoord1.xy); + // texld r4, v3.wzzw, s1 + temp4 = tex2D(BaseSamplerClampedSampler, i.texcoord1.wz); + // lrp r5, r2.x, r3, r0 + temp5 = lerp(temp0, temp3, temp2.x); + // lrp r0, r2.y, r4, r5 + temp0 = lerp(temp5, temp4, temp2.y); + // log r3.x, r0.x + temp3.x = log2(temp0.x); + // log r3.y, r0.y + temp3.y = log2(temp0.y); + // log r3.z, r0.z + temp3.z = log2(temp0.z); + // mul r0.xyz, r3, c3.z + temp0.xyz = temp3.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r0.x + temp3.x = exp2(temp0.x); + // exp r3.y, r0.y + temp3.y = exp2(temp0.y); + // exp r3.z, r0.z + temp3.z = exp2(temp0.z); + // texld r4, v2, s2 + temp4 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy); + // texld r5, v3, s2 + temp5 = tex2D(NormalSamplerClampedSampler, i.texcoord1.xy); + // texld r6, v3.wzzw, s2 + temp6 = tex2D(NormalSamplerClampedSampler, i.texcoord1.wz); + // lrp r0.xyz, r2.x, r5, r4 + temp0.xyz = lerp(temp4.xyz, temp5.xyz, temp2.xxx); + // lrp r4.xyz, r2.y, r6, r0 + temp4.xyz = lerp(temp0.xyz, temp6.xyz, temp2.yyy); + // mad r0.xyz, r4, c3.w, c3.y + temp0.xyz = temp4.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c2.xxyw + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1); + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mov r4.x, c2.z + temp4.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r4.x, c0 + temp5 = temp4.x + float4(-2, -3, -4, -5); + // add r4.xyz, r4.x, -c2.wzyw + temp4.xyz = temp4.xxx + float3(1, -0, -1); + // mov r6.z, c2.z + temp6.z = float1(0); + // cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z + temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz; + // cmp r7.xyz, -r4_abs.y, c90, r6.z + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz; + // cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z + temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz; + // cmp r6.xyz, -r4_abs.z, c92, r6.xyww + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw; + // cmp r7.xyz, -r4_abs.z, c93, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww + temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.x, c97.xxyw, r4 + temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.y, c100.xxyw, r4 + temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.z, c103.xxyw, r4 + temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.w, c106.xxyw, r4 + temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz; + // add r6.xyz, r6, -v5 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.y, r3.w + temp2.w = -temp4.y + temp3.w; + // add r3.w, -r4.y, r4.z + temp3.w = -temp4.y + temp4.z; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c3.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.yzw, r5.xxyz, r2.w + temp4.yzw = temp5.xyz * temp2.www; + // dp3 r2.w, r2, r6 + temp2.w = dot(temp2.xyz, temp6.xyz); + // max r3.w, r2.w, c2.z + temp3.w = max(temp2.w, float1(0)); + // mad r0.xyz, r4.yzww, r3.w, r0 + temp0.xyz = temp4.yzw * temp3.www + temp0.xyz; + // endrep + } + // mul r0.xyz, r3, r0 + temp0.xyz = temp3.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // dp3 r2.w, r2, v6 + temp2.w = dot(temp2.xyz, i.texcoord4.xyz); + // dp3 r2.x, r2, v7 + temp2.x = dot(temp2.xyz, i.texcoord5.xyz); + // cmp r2.y, -r2.w, c2.z, c2.y + temp2.y = (-temp2.w >= 0) ? float1(0) : float1(1); + // mul r2.z, r2.w, r2.y + temp2.z = temp2.w * temp2.y; + // cmp r3.w, -r2.x, c2.z, c2.y + temp3.w = (-temp2.x >= 0) ? float1(0) : float1(1); + // mul r2.y, r2.y, r3.w + temp2.y = temp2.y * temp3.w; + // pow r3.w, r2.x, c1.x + temp3.w = pow(temp2.x, float1(40)); + // mul r2.w, r2.y, r3.w + temp2.w = temp2.y * temp3.w; + // texld r4, v8, s5 + temp4 = tex2D(ShadowMapSampler, i.texcoord6.xy); + // add r2.xy, c11.zxzw, v8 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord6.xy; + // texld r5, r2, s5 + temp5 = tex2D(ShadowMapSampler, temp2.xy); + // add r2.xy, c11.yzzw, v8 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord6.xy; + // texld r6, r2, s5 + temp6 = tex2D(ShadowMapSampler, temp2.xy); + // add r2.xy, c11.wzzw, v8 + temp2.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord6.xy; + // texld r7, r2, s5 + temp7 = tex2D(ShadowMapSampler, temp2.xy); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v8.z + temp4 = temp4 + -i.texcoord6.z; + // cmp r4, r4, c2.y, c2.z + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r2.x, c3.x, r4 + temp2.x = dot(float4(1, 1, 1, 1), temp4); + // mul r2.x, r2.x, c1.y + temp2.x = temp2.x * float1(0.25); + // mul r2.xy, r2.zwzw, r2.x + temp2.xy = temp2.zw * temp2.xx; + // texld r4, r1, s4 + temp4 = tex2D(CloudSamplerSampler, temp1.xy); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c3.z + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // dp2add r0.w, r2.y, r0.w, c2.z + temp0.w = dot(temp2.yy, temp0.ww) + float1(0); + // mad r2.xyz, r2.x, r3, r0.w + temp2.xyz = temp2.xxx * temp3.xyz + temp0.www; + // mad r0.xyz, r4, r2, r0 + temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyz; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c3.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c3.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c3.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v4, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +PixelShader PS_TerrainTile_Array[4] = { + compile ps_3_0 PS_TerrainTile_Array_Shader_0(), // 91 + compile ps_3_0 PS_TerrainTile_Array_Shader_1(), // 92 + compile ps_3_0 PS_TerrainTile_Array_Shader_2(), // 93 + compile ps_3_0 PS_TerrainTile_Array_Shader_3(), // 94 +}; +// PS_Cliff_Array_Shader_0 Pixel_3_0 Has PRES True +struct PS_Cliff_Array_Shader_0_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Cliff_Array_Shader_0(PS_Cliff_Array_Shader_0_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c11.x, r0.x + expr11.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + // def c0, 0.75, 0, 1, -1 + // def c1, -2, -3, -4, -5 + // def c2, 1, -1, 2.2, 2 + // def c3, 40, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5_centroid v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v4.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v4, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c2 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c11.x + temp1.zw = temp2.xy * expr11.xx; + // mul r1.zw, r1, v4.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c2.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r0, v2, s2 + temp0 = tex2D(NormalSamplerWrappedSampler, i.texcoord.xy); + // mad r0.xy, r0, c2.w, c2.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // mad r0.w, r0.x, -r0.x, c2.x + temp0.w = temp0.x * -temp0.x + float1(1); + // mad r0.w, r0.y, -r0.y, r0.w + temp0.w = temp0.y * -temp0.y + temp0.w; + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r3.z, r0.w + temp3.z = 1.0f / temp0.w; + // mul r3.xy, r0, c0.x + temp3.xy = temp0.xy * float2(0.75, 0.75); + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // mov r0.xyw, v0.xyzz + temp0.xyw = i.color.xyz; + // mov r3.x, c0.y + temp3.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r3.x, c1 + temp5 = temp3.x + float4(-2, -3, -4, -5); + // add r3.xyz, r3.x, -c0.wyzw + temp3.xyz = temp3.xxx + float3(1, -0, -1); + // mov r6.y, c0.y + temp6.y = float1(0); + // cmp r6.xzw, -r3_abs.y, c89.xyyz, r6.y + temp6.xzw = (-abs(temp3).yyy >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r3_abs.y, c90, r6.y + temp7.xyz = (-abs(temp3).yyy >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r3.yw, -r3_abs.y, c91.xxzy, r6.y + temp3.yw = (-abs(temp3).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r3_abs.z, c92, r6.xzww + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r3_abs.z, c93, r7 + temp7.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r3.yz, -r3_abs.z, c94.xxyw, r3.xyww + temp3.yz = (-abs(temp3).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp3.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.x, c97.xxyw, r3 + temp3.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.y, c100.xxyw, r3 + temp3.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.z, c103.xxyw, r3 + temp3.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.w, c106.xxyw, r3 + temp3.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.yz; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r3.y, r3.w + temp2.w = -temp3.y + temp3.w; + // add r3.y, -r3.y, r3.z + temp3.y = -temp3.y + temp3.z; + // rcp r3.y, r3.y + temp3.y = 1.0f / temp3.y; + // mad_sat r2.w, r2.w, -r3.y, c2.x + temp2.w = saturate(temp2.w * -temp3.y + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.yzw, r5.xxyz, r2.w + temp3.yzw = temp5.xyz * temp2.www; + // dp3 r2.w, r4, r6 + temp2.w = dot(temp4.xyz, temp6.xyz); + // max r4.w, r2.w, c0.y + temp4.w = max(temp2.w, float1(0)); + // mad r0.xyw, r3.yzzw, r4.w, r0 + temp0.xyw = temp3.yzw * temp4.www + temp0.xyw; + // endrep + } + // mul r0.xyw, r2.xyzz, r0 + temp0.xyw = temp2.xyz * temp0.xyw; + // add r0.xyw, r0, r0 + temp0.xyw = temp0.xyw + temp0.xyw; + // dp3 r2.w, r4, v5 + temp2.w = dot(temp4.xyz, i.texcoord4.xyz); + // dp3 r3.x, r4, v6 + temp3.x = dot(temp4.xyz, i.texcoord5.xyz); + // cmp r3.y, -r2.w, c0.y, c0.z + temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1); + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // cmp r3.z, -r3.x, c0.y, c0.z + temp3.z = (-temp3.x >= 0) ? float1(0) : float1(1); + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c3.x + temp4.x = pow(temp3.x, float1(40)); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // texld r4, r1, s4 + temp4 = tex2D(CloudSamplerSampler, temp1.xy); + // log r3.y, r4.x + temp3.y = log2(temp4.x); + // log r3.z, r4.y + temp3.z = log2(temp4.y); + // log r3.w, r4.z + temp3.w = log2(temp4.z); + // mul r3.yzw, r3, c2.z + temp3.yzw = temp3.yzw * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.y + temp4.x = exp2(temp3.y); + // exp r4.y, r3.z + temp4.y = exp2(temp3.z); + // exp r4.z, r3.w + temp4.z = exp2(temp3.w); + // mul r3.yzw, r4.xxyz, c5.xxyz + temp3.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // dp2add r0.z, r3.x, r0.z, c0.y + temp0.z = dot(temp3.xx, temp0.zz) + float1(0); + // mad r2.xyz, r2.w, r2, r0.z + temp2.xyz = temp2.www * temp2.xyz + temp0.zzz; + // mad r0.xyz, r3.yzww, r2, r0.xyww + temp0.xyz = temp3.yzw * temp2.xyz + temp0.xyw; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c2.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c2.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c2.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +// PS_Cliff_Array_Shader_1 Pixel_3_0 Has PRES True +struct PS_Cliff_Array_Shader_1_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Cliff_Array_Shader_1(PS_Cliff_Array_Shader_1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 0.75, 0, 1, -1 + // def c1, 1, -1, 2.2, 2 + // def c2, -2, -3, -4, -5 + // def c3, 40, 0.25, 0, 0 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5_centroid v6.xyz + // dcl_texcoord6 v7.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v4.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v4, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c1 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c12.x + temp1.zw = temp2.xy * expr12.xx; + // mul r1.zw, r1, v4.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c1.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // texld r0, v2, s2 + temp0 = tex2D(NormalSamplerWrappedSampler, i.texcoord.xy); + // mad r0.xy, r0, c1.w, c1.y + temp0.xy = temp0.xy * float2(2, 2) + float2(-1, -1); + // mad r0.w, r0.x, -r0.x, c1.x + temp0.w = temp0.x * -temp0.x + float1(1); + // mad r0.w, r0.y, -r0.y, r0.w + temp0.w = temp0.y * -temp0.y + temp0.w; + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r3.z, r0.w + temp3.z = 1.0f / temp0.w; + // mul r3.xy, r0, c0.x + temp3.xy = temp0.xy * float2(0.75, 0.75); + // nrm r4.xyz, r3 + temp4.xyz = normalize(temp3.xyz).xyz; + // mov r0.xyw, v0.xyzz + temp0.xyw = i.color.xyz; + // mov r3.x, c0.y + temp3.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r3.x, c2 + temp5 = temp3.x + float4(-2, -3, -4, -5); + // add r3.xyz, r3.x, -c0.wyzw + temp3.xyz = temp3.xxx + float3(1, -0, -1); + // mov r6.y, c0.y + temp6.y = float1(0); + // cmp r6.xzw, -r3_abs.y, c89.xyyz, r6.y + temp6.xzw = (-abs(temp3).yyy >= 0) ? PointLight[0].Color.xyz : temp6.yyy; + // cmp r7.xyz, -r3_abs.y, c90, r6.y + temp7.xyz = (-abs(temp3).yyy >= 0) ? PointLight[0].Position.xyz : temp6.yyy; + // cmp r3.yw, -r3_abs.y, c91.xxzy, r6.y + temp3.yw = (-abs(temp3).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.yy; + // cmp r6.xyz, -r3_abs.z, c92, r6.xzww + temp6.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xzw; + // cmp r7.xyz, -r3_abs.z, c93, r7 + temp7.xyz = (-abs(temp3).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r3.yz, -r3_abs.z, c94.xxyw, r3.xyww + temp3.yz = (-abs(temp3).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp3.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.x, c97.xxyw, r3 + temp3.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp3.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.y, c100.xxyw, r3 + temp3.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp3.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.z, c103.xxyw, r3 + temp3.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp3.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r3.yz, -r5_abs.w, c106.xxyw, r3 + temp3.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp3.yz; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r3.y, r3.w + temp2.w = -temp3.y + temp3.w; + // add r3.y, -r3.y, r3.z + temp3.y = -temp3.y + temp3.z; + // rcp r3.y, r3.y + temp3.y = 1.0f / temp3.y; + // mad_sat r2.w, r2.w, -r3.y, c1.x + temp2.w = saturate(temp2.w * -temp3.y + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r3.yzw, r5.xxyz, r2.w + temp3.yzw = temp5.xyz * temp2.www; + // dp3 r2.w, r4, r6 + temp2.w = dot(temp4.xyz, temp6.xyz); + // max r4.w, r2.w, c0.y + temp4.w = max(temp2.w, float1(0)); + // mad r0.xyw, r3.yzzw, r4.w, r0 + temp0.xyw = temp3.yzw * temp4.www + temp0.xyw; + // endrep + } + // mul r0.xyw, r2.xyzz, r0 + temp0.xyw = temp2.xyz * temp0.xyw; + // add r0.xyw, r0, r0 + temp0.xyw = temp0.xyw + temp0.xyw; + // dp3 r2.w, r4, v5 + temp2.w = dot(temp4.xyz, i.texcoord4.xyz); + // dp3 r3.x, r4, v6 + temp3.x = dot(temp4.xyz, i.texcoord5.xyz); + // cmp r3.y, -r2.w, c0.y, c0.z + temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1); + // mul r3.z, r2.w, r3.y + temp3.z = temp2.w * temp3.y; + // cmp r2.w, -r3.x, c0.y, c0.z + temp2.w = (-temp3.x >= 0) ? float1(0) : float1(1); + // mul r2.w, r3.y, r2.w + temp2.w = temp3.y * temp2.w; + // pow r4.x, r3.x, c3.x + temp4.x = pow(temp3.x, float1(40)); + // mul r3.w, r2.w, r4.x + temp3.w = temp2.w * temp4.x; + // texld r4, v7, s5 + temp4 = tex2D(ShadowMapSampler, i.texcoord6.xy); + // add r3.xy, c11.zxzw, v7 + temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord6.xy; + // texld r5, r3, s5 + temp5 = tex2D(ShadowMapSampler, temp3.xy); + // add r3.xy, c11.yzzw, v7 + temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord6.xy; + // texld r6, r3, s5 + temp6 = tex2D(ShadowMapSampler, temp3.xy); + // add r3.xy, c11.wzzw, v7 + temp3.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord6.xy; + // texld r7, r3, s5 + temp7 = tex2D(ShadowMapSampler, temp3.xy); + // mov r4.y, r5.x + temp4.y = temp5.x; + // mov r4.z, r6.x + temp4.z = temp6.x; + // mov r4.w, r7.x + temp4.w = temp7.x; + // add r4, r4, -v7.z + temp4 = temp4 + -i.texcoord6.z; + // cmp r4, r4, c0.z, c0.y + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r2.w, c1.x, r4 + temp2.w = dot(float4(1, 1, 1, 1), temp4); + // mul r2.w, r2.w, c3.y + temp2.w = temp2.w * float1(0.25); + // mul r3.xy, r3.zwzw, r2.w + temp3.xy = temp3.zw * temp2.ww; + // texld r4, r1, s4 + temp4 = tex2D(CloudSamplerSampler, temp1.xy); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c1.z + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // dp2add r0.z, r3.y, r0.z, c0.y + temp0.z = dot(temp3.yy, temp0.zz) + float1(0); + // mad r2.xyz, r3.x, r2, r0.z + temp2.xyz = temp3.xxx * temp2.xyz + temp0.zzz; + // mad r0.xyz, r4, r2, r0.xyww + temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyw; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c1.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c1.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c1.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // mov oC0.w, v0.w + out_color.w = i.color.w; + // + + return out_color; +} + +PixelShader PS_Cliff_Array[2] = { + compile ps_3_0 PS_Cliff_Array_Shader_0(), // 97 + compile ps_3_0 PS_Cliff_Array_Shader_1(), // 98 +}; +// PS_Road_Array_Shader_0 Pixel_3_0 Has PRES True +struct PS_Road_Array_Shader_0_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Road_Array_Shader_0(PS_Road_Array_Shader_0_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c11.x, r0.x + expr11.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + // def c0, -2, -3, -4, -5 + // def c1, 0.75, 1, 0, -1 + // def c2, 1, -1, 2.2, 2 + // def c3, 40, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5_centroid v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v4.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v4, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c2 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c11.x + temp1.zw = temp2.xy * expr11.xx; + // mul r1.zw, r1, v4.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c2.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul oC0.w, r0.w, v0.w + out_color.w = temp0.w * i.color.w; + // texld r0, v2, s2 + temp0 = tex2D(NormalSamplerWrappedSampler, i.texcoord.xy); + // mad r0.xyz, r0, c2.w, c2.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c1.xxyw + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1); + // nrm r3.xyz, r0 + temp3.xyz = normalize(temp0.xyz).xyz; + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mov r4.x, c1.z + temp4.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r4.x, c0 + temp5 = temp4.x + float4(-2, -3, -4, -5); + // add r4.xyz, r4.x, -c1.wzyw + temp4.xyz = temp4.xxx + float3(1, -0, -1); + // mov r6.z, c1.z + temp6.z = float1(0); + // cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z + temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz; + // cmp r7.xyz, -r4_abs.y, c90, r6.z + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz; + // cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z + temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz; + // cmp r6.xyz, -r4_abs.z, c92, r6.xyww + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw; + // cmp r7.xyz, -r4_abs.z, c93, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww + temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.x, c97.xxyw, r4 + temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.y, c100.xxyw, r4 + temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.z, c103.xxyw, r4 + temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.w, c106.xxyw, r4 + temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.y, r3.w + temp2.w = -temp4.y + temp3.w; + // add r3.w, -r4.y, r4.z + temp3.w = -temp4.y + temp4.z; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c2.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.yzw, r5.xxyz, r2.w + temp4.yzw = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c1.z + temp3.w = max(temp2.w, float1(0)); + // mad r0.xyz, r4.yzww, r3.w, r0 + temp0.xyz = temp4.yzw * temp3.www + temp0.xyz; + // endrep + } + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // dp3 r2.w, r3, v5 + temp2.w = dot(temp3.xyz, i.texcoord4.xyz); + // dp3 r3.x, r3, v6 + temp3.x = dot(temp3.xyz, i.texcoord5.xyz); + // cmp r3.y, -r2.w, c1.z, c1.y + temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1); + // mul r2.w, r2.w, r3.y + temp2.w = temp2.w * temp3.y; + // cmp r3.z, -r3.x, c1.z, c1.y + temp3.z = (-temp3.x >= 0) ? float1(0) : float1(1); + // mul r3.y, r3.y, r3.z + temp3.y = temp3.y * temp3.z; + // pow r4.x, r3.x, c3.x + temp4.x = pow(temp3.x, float1(40)); + // mul r3.x, r3.y, r4.x + temp3.x = temp3.y * temp4.x; + // texld r4, r1, s4 + temp4 = tex2D(CloudSamplerSampler, temp1.xy); + // log r3.y, r4.x + temp3.y = log2(temp4.x); + // log r3.z, r4.y + temp3.z = log2(temp4.y); + // log r3.w, r4.z + temp3.w = log2(temp4.z); + // mul r3.yzw, r3, c2.z + temp3.yzw = temp3.yzw * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.y + temp4.x = exp2(temp3.y); + // exp r4.y, r3.z + temp4.y = exp2(temp3.z); + // exp r4.z, r3.w + temp4.z = exp2(temp3.w); + // mul r3.yzw, r4.xxyz, c5.xxyz + temp3.yzw = temp4.xyz * DirectionalLight[0].Color.xyz; + // dp2add r0.w, r3.x, r0.w, c1.z + temp0.w = dot(temp3.xx, temp0.ww) + float1(0); + // mad r2.xyz, r2.w, r2, r0.w + temp2.xyz = temp2.www * temp2.xyz + temp0.www; + // mad r0.xyz, r3.yzww, r2, r0 + temp0.xyz = temp3.yzw * temp2.xyz + temp0.xyz; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c2.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c2.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c2.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // + + return out_color; +} + +// PS_Road_Array_Shader_1 Pixel_3_0 Has PRES True +struct PS_Road_Array_Shader_1_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +float4 PS_Road_Array_Shader_1(PS_Road_Array_Shader_1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + // def c0, -2, -3, -4, -5 + // def c1, 40, -0.0015, 0.25, 0 + // def c2, 1, -1, 2.2, 2 + // def c3, 0.75, 1, 0, -1 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5_centroid v6.xyz + // dcl_texcoord6 v7 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v4.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v4, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c2 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c12.x + temp1.zw = temp2.xy * expr12.xx; + // mul r1.zw, r1, v4.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c2.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul oC0.w, r0.w, v0.w + out_color.w = temp0.w * i.color.w; + // texld r0, v2, s2 + temp0 = tex2D(NormalSamplerWrappedSampler, i.texcoord.xy); + // mad r0.xyz, r0, c2.w, c2.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c3.xxyw + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1); + // nrm r3.xyz, r0 + temp3.xyz = normalize(temp0.xyz).xyz; + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mov r4.x, c3.z + temp4.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r4.x, c0 + temp5 = temp4.x + float4(-2, -3, -4, -5); + // add r4.xyz, r4.x, -c3.wzyw + temp4.xyz = temp4.xxx + float3(1, -0, -1); + // mov r6.z, c3.z + temp6.z = float1(0); + // cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z + temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz; + // cmp r7.xyz, -r4_abs.y, c90, r6.z + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz; + // cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z + temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz; + // cmp r6.xyz, -r4_abs.z, c92, r6.xyww + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw; + // cmp r7.xyz, -r4_abs.z, c93, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww + temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.x, c97.xxyw, r4 + temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.y, c100.xxyw, r4 + temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.z, c103.xxyw, r4 + temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.w, c106.xxyw, r4 + temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r2.w, r6, r6 + temp2.w = dot(temp6.xyz, temp6.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r6.xyz, r6, r2.w + temp6.xyz = temp6.xyz * temp2.www; + // add r2.w, -r4.y, r3.w + temp2.w = -temp4.y + temp3.w; + // add r3.w, -r4.y, r4.z + temp3.w = -temp4.y + temp4.z; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c2.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r4.yzw, r5.xxyz, r2.w + temp4.yzw = temp5.xyz * temp2.www; + // dp3 r2.w, r3, r6 + temp2.w = dot(temp3.xyz, temp6.xyz); + // max r3.w, r2.w, c3.z + temp3.w = max(temp2.w, float1(0)); + // mad r0.xyz, r4.yzww, r3.w, r0 + temp0.xyz = temp4.yzw * temp3.www + temp0.xyz; + // endrep + } + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // dp3 r2.w, r3, v5 + temp2.w = dot(temp3.xyz, i.texcoord4.xyz); + // dp3 r3.x, r3, v6 + temp3.x = dot(temp3.xyz, i.texcoord5.xyz); + // cmp r3.y, -r2.w, c3.z, c3.y + temp3.y = (-temp2.w >= 0) ? float1(0) : float1(1); + // mul r3.z, r2.w, r3.y + temp3.z = temp2.w * temp3.y; + // cmp r2.w, -r3.x, c3.z, c3.y + temp2.w = (-temp3.x >= 0) ? float1(0) : float1(1); + // mul r2.w, r3.y, r2.w + temp2.w = temp3.y * temp2.w; + // pow r4.x, r3.x, c1.x + temp4.x = pow(temp3.x, float1(40)); + // mul r3.w, r2.w, r4.x + temp3.w = temp2.w * temp4.x; + // rcp r2.w, v7.w + temp2.w = 1.0f / i.texcoord6.w; + // mul r3.xy, r2.w, v7 + temp3.xy = temp2.ww * i.texcoord6.xy; + // mad r4.x, v7.z, r2.w, c1.y + temp4.x = i.texcoord6.z * temp2.w + float1(-0.0015); + // texld r5, r3, s5 + temp5 = tex2D(ShadowMapSampler, temp3.xy); + // mad r3.xy, v7, r2.w, c11.zxzw + temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // texld r6, r3, s5 + temp6 = tex2D(ShadowMapSampler, temp3.xy); + // mad r3.xy, v7, r2.w, c11.yzzw + temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // texld r7, r3, s5 + temp7 = tex2D(ShadowMapSampler, temp3.xy); + // mad r3.xy, v7, r2.w, c11.wzzw + temp3.xy = i.texcoord6.xy * temp2.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r8, r3, s5 + temp8 = tex2D(ShadowMapSampler, temp3.xy); + // mov r5.y, r6.x + temp5.y = temp6.x; + // mov r5.z, r7.x + temp5.z = temp7.x; + // mov r5.w, r8.x + temp5.w = temp8.x; + // add r4, -r4.x, r5 + temp4 = -temp4.x + temp5; + // cmp r4, r4, c3.y, c3.z + temp4 = (temp4 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r2.w, c2.x, r4 + temp2.w = dot(float4(1, 1, 1, 1), temp4); + // mul r2.w, r2.w, c1.z + temp2.w = temp2.w * float1(0.25); + // mul r3.xy, r3.zwzw, r2.w + temp3.xy = temp3.zw * temp2.ww; + // texld r4, r1, s4 + temp4 = tex2D(CloudSamplerSampler, temp1.xy); + // log r5.x, r4.x + temp5.x = log2(temp4.x); + // log r5.y, r4.y + temp5.y = log2(temp4.y); + // log r5.z, r4.z + temp5.z = log2(temp4.z); + // mul r4.xyz, r5, c2.z + temp4.xyz = temp5.xyz * float3(2.2, 2.2, 2.2); + // exp r5.x, r4.x + temp5.x = exp2(temp4.x); + // exp r5.y, r4.y + temp5.y = exp2(temp4.y); + // exp r5.z, r4.z + temp5.z = exp2(temp4.z); + // mul r4.xyz, r5, c5 + temp4.xyz = temp5.xyz * DirectionalLight[0].Color.xyz; + // dp2add r0.w, r3.y, r0.w, c3.z + temp0.w = dot(temp3.yy, temp0.ww) + float1(0); + // mad r2.xyz, r3.x, r2, r0.w + temp2.xyz = temp3.xxx * temp2.xyz + temp0.www; + // mad r0.xyz, r4, r2, r0 + temp0.xyz = temp4.xyz * temp2.xyz + temp0.xyz; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c2.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c2.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c2.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // + + return out_color; +} + +PixelShader PS_Road_Array[2] = { + compile ps_3_0 PS_Road_Array_Shader_0(), // 101 + compile ps_3_0 PS_Road_Array_Shader_1(), // 102 +}; +// PS_Scorch_Array_Shader_0 Pixel_3_0 Has PRES True +struct PS_Scorch_Array_Shader_0_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; +}; + +float4 PS_Scorch_Array_Shader_0(PS_Scorch_Array_Shader_0_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c11.x, r0.x + expr11.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + // def c0, -2, -3, -4, -5 + // def c1, 0.75, 1, 0, -1 + // def c2, 1, -1, 2.2, 2 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v4.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v4, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c2 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c11.x + temp1.zw = temp2.xy * expr11.xx; + // mul r1.zw, r1, v4.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c2.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul oC0.w, r0.w, v0.w + out_color.w = temp0.w * i.color.w; + // texld r0, v2, s2 + temp0 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy); + // mad r0.xyz, r0, c2.w, c2.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c1.xxyw + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1); + // nrm r3.xyz, r0 + temp3.xyz = normalize(temp0.xyz).xyz; + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mov r4.x, c1.z + temp4.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r4.x, c0 + temp5 = temp4.x + float4(-2, -3, -4, -5); + // add r4.xyz, r4.x, -c1.wzyw + temp4.xyz = temp4.xxx + float3(1, -0, -1); + // mov r6.z, c1.z + temp6.z = float1(0); + // cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z + temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz; + // cmp r7.xyz, -r4_abs.y, c90, r6.z + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz; + // cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z + temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz; + // cmp r6.xyz, -r4_abs.z, c92, r6.xyww + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw; + // cmp r7.xyz, -r4_abs.z, c93, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww + temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.x, c97.xxyw, r4 + temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.y, c100.xxyw, r4 + temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.z, c103.xxyw, r4 + temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.w, c106.xxyw, r4 + temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r0.w, r6, r6 + temp0.w = dot(temp6.xyz, temp6.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r6.xyz, r6, r0.w + temp6.xyz = temp6.xyz * temp0.www; + // add r0.w, -r4.y, r2.w + temp0.w = -temp4.y + temp2.w; + // add r2.w, -r4.y, r4.z + temp2.w = -temp4.y + temp4.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c2.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r4.yzw, r5.xxyz, r0.w + temp4.yzw = temp5.xyz * temp0.www; + // dp3 r0.w, r3, r6 + temp0.w = dot(temp3.xyz, temp6.xyz); + // max r2.w, r0.w, c1.z + temp2.w = max(temp0.w, float1(0)); + // mad r0.xyz, r4.yzww, r2.w, r0 + temp0.xyz = temp4.yzw * temp2.www + temp0.xyz; + // endrep + } + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // dp3 r0.w, r3, v5 + temp0.w = dot(temp3.xyz, i.texcoord4.xyz); + // cmp r2.w, -r0.w, c1.z, c1.y + temp2.w = (-temp0.w >= 0) ? float1(0) : float1(1); + // mul r0.w, r0.w, r2.w + temp0.w = temp0.w * temp2.w; + // texld r3, r1, s4 + temp3 = tex2D(CloudSamplerSampler, temp1.xy); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c2.z + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // mad r0.xyz, r3, r2, r0 + temp0.xyz = temp3.xyz * temp2.xyz + temp0.xyz; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c2.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c2.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c2.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // + + return out_color; +} + +// PS_Scorch_Array_Shader_1 Pixel_3_0 Has PRES True +struct PS_Scorch_Array_Shader_1_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord6 : TEXCOORD6; +}; + +float4 PS_Scorch_Array_Shader_1(PS_Scorch_Array_Shader_1_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + float3 temp7; + // def c0, 1, -1, 2.2, 2 + // def c1, -2, -3, -4, -5 + // def c2, 0.75, 1, 0, -1 + // def c3, 0.25, 0, 0, 0 + // dcl_color v0 + // dcl_color1 v1.x + // dcl_texcoord v2.xy + // dcl_texcoord2 v3.xy + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord6 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // dcl_2d s5 + // texld r0, v2, s1 + temp0 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // mul r1.xy, c117.zwzw, v4.z + temp1.xy = Cloud.WorldPositionMultiplier_XYZZ.zw * i.texcoord3.zz; + // mad r1.xy, v4, c117, -r1 + temp1.xy = i.texcoord3.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add r1.xy, r1, c118 + temp1.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r2.xy, c0 + temp2.xy = float2(1, -1); + // mul r1.zw, r2.xyxy, c12.x + temp1.zw = temp2.xy * expr12.xx; + // mul r1.zw, r1, v4.xyxy + temp1.zw = temp1.zw * i.texcoord3.xy; + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.z + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mul oC0.w, r0.w, v0.w + out_color.w = temp0.w * i.color.w; + // texld r0, v2, s2 + temp0 = tex2D(NormalSamplerClampedSampler, i.texcoord.xy); + // mad r0.xyz, r0, c0.w, c0.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mul r0.xyz, r0, c2.xxyw + temp0.xyz = temp0.xyz * float3(0.75, 0.75, 1); + // nrm r3.xyz, r0 + temp3.xyz = normalize(temp0.xyz).xyz; + // mov r0.xyz, v0 + temp0.xyz = i.color.xyz; + // mov r4.x, c2.z + temp4.x = float1(0); + // rep i0 + for (int it0 = 0; it0 < NumPointLights; ++it0) { + // add r5, r4.x, c1 + temp5 = temp4.x + float4(-2, -3, -4, -5); + // add r4.xyz, r4.x, -c2.wzyw + temp4.xyz = temp4.xxx + float3(1, -0, -1); + // mov r6.z, c2.z + temp6.z = float1(0); + // cmp r6.xyw, -r4_abs.y, c89.xyzz, r6.z + temp6.xyw = (-abs(temp4).yyy >= 0) ? PointLight[0].Color.xyz : temp6.zzz; + // cmp r7.xyz, -r4_abs.y, c90, r6.z + temp7.xyz = (-abs(temp4).yyy >= 0) ? PointLight[0].Position.xyz : temp6.zzz; + // cmp r4.yw, -r4_abs.y, c91.xxzy, r6.z + temp4.yw = (-abs(temp4).yy >= 0) ? PointLight[0].Range_Inner_Outer.xy : temp6.zz; + // cmp r6.xyz, -r4_abs.z, c92, r6.xyww + temp6.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Color.xyz : temp6.xyw; + // cmp r7.xyz, -r4_abs.z, c93, r7 + temp7.xyz = (-abs(temp4).zzz >= 0) ? PointLight[1].Position.xyz : temp7.xyz; + // cmp r4.yz, -r4_abs.z, c94.xxyw, r4.xyww + temp4.yz = (-abs(temp4).zz >= 0) ? PointLight[1].Range_Inner_Outer.xy : temp4.yw; + // cmp r6.xyz, -r5_abs.x, c95, r6 + temp6.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.x, c96, r7 + temp7.xyz = (-abs(temp5).xxx >= 0) ? PointLight[2].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.x, c97.xxyw, r4 + temp4.yz = (-abs(temp5).xx >= 0) ? PointLight[2].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.y, c98, r6 + temp6.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.y, c99, r7 + temp7.xyz = (-abs(temp5).yyy >= 0) ? PointLight[3].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.y, c100.xxyw, r4 + temp4.yz = (-abs(temp5).yy >= 0) ? PointLight[3].Range_Inner_Outer.xy : temp4.yz; + // cmp r6.xyz, -r5_abs.z, c101, r6 + temp6.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Color.xyz : temp6.xyz; + // cmp r7.xyz, -r5_abs.z, c102, r7 + temp7.xyz = (-abs(temp5).zzz >= 0) ? PointLight[4].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.z, c103.xxyw, r4 + temp4.yz = (-abs(temp5).zz >= 0) ? PointLight[4].Range_Inner_Outer.xy : temp4.yz; + // cmp r5.xyz, -r5_abs.w, c104, r6 + temp5.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Color.xyz : temp6.xyz; + // cmp r6.xyz, -r5_abs.w, c105, r7 + temp6.xyz = (-abs(temp5).www >= 0) ? PointLight[5].Position.xyz : temp7.xyz; + // cmp r4.yz, -r5_abs.w, c106.xxyw, r4 + temp4.yz = (-abs(temp5).ww >= 0) ? PointLight[5].Range_Inner_Outer.xy : temp4.yz; + // add r6.xyz, r6, -v4 + temp6.xyz = temp6.xyz + -i.texcoord3.xyz; + // dp3 r0.w, r6, r6 + temp0.w = dot(temp6.xyz, temp6.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r6.xyz, r6, r0.w + temp6.xyz = temp6.xyz * temp0.www; + // add r0.w, -r4.y, r2.w + temp0.w = -temp4.y + temp2.w; + // add r2.w, -r4.y, r4.z + temp2.w = -temp4.y + temp4.z; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r4.yzw, r5.xxyz, r0.w + temp4.yzw = temp5.xyz * temp0.www; + // dp3 r0.w, r3, r6 + temp0.w = dot(temp3.xyz, temp6.xyz); + // max r2.w, r0.w, c2.z + temp2.w = max(temp0.w, float1(0)); + // mad r0.xyz, r4.yzww, r2.w, r0 + temp0.xyz = temp4.yzw * temp2.www + temp0.xyz; + // endrep + } + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // dp3 r0.w, r3, v5 + temp0.w = dot(temp3.xyz, i.texcoord4.xyz); + // cmp r2.w, -r0.w, c2.z, c2.y + temp2.w = (-temp0.w >= 0) ? float1(0) : float1(1); + // mul r0.w, r0.w, r2.w + temp0.w = temp0.w * temp2.w; + // texld r3, v6, s5 + temp3 = tex2D(ShadowMapSampler, i.texcoord6.xy); + // add r4.xy, c11.zxzw, v6 + temp4.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord6.xy; + // texld r4, r4, s5 + temp4 = tex2D(ShadowMapSampler, temp4.xy); + // add r4.yz, c11, v6.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord6.xy; + // texld r5, r4.yzzw, s5 + temp5 = tex2D(ShadowMapSampler, temp4.yz); + // add r4.yz, c11.xwzw, v6.xxyw + temp4.yz = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord6.xy; + // texld r6, r4.yzzw, s5 + temp6 = tex2D(ShadowMapSampler, temp4.yz); + // mov r3.y, r4.x + temp3.y = temp4.x; + // mov r3.z, r5.x + temp3.z = temp5.x; + // mov r3.w, r6.x + temp3.w = temp6.x; + // add r3, r3, -v6.z + temp3 = temp3 + -i.texcoord6.z; + // cmp r3, r3, c2.y, c2.z + temp3 = (temp3 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r2.w, c0.x, r3 + temp2.w = dot(float4(1, 1, 1, 1), temp3); + // mul r0.w, r0.w, r2.w + temp0.w = temp0.w * temp2.w; + // mul r0.w, r0.w, c3.x + temp0.w = temp0.w * float1(0.25); + // texld r3, r1, s4 + temp3 = tex2D(CloudSamplerSampler, temp1.xy); + // log r4.x, r3.x + temp4.x = log2(temp3.x); + // log r4.y, r3.y + temp4.y = log2(temp3.y); + // log r4.z, r3.z + temp4.z = log2(temp3.z); + // mul r3.xyz, r4, c0.z + temp3.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r4.x, r3.x + temp4.x = exp2(temp3.x); + // exp r4.y, r3.y + temp4.y = exp2(temp3.y); + // exp r4.z, r3.z + temp4.z = exp2(temp3.z); + // mul r3.xyz, r4, c5 + temp3.xyz = temp4.xyz * DirectionalLight[0].Color.xyz; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // mad r0.xyz, r3, r2, r0 + temp0.xyz = temp3.xyz * temp2.xyz + temp0.xyz; + // texld r1, r1.zwzw, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.zw); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r1.xyz, r2, c0.z + temp1.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r1.x + temp2.x = exp2(temp1.x); + // exp r2.y, r1.y + temp2.y = exp2(temp1.y); + // exp r2.z, r1.z + temp2.z = exp2(temp1.z); + // mad r0.xyz, r0, r2, c0.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.x, r0, c0.x + temp0.xyz = i.color1.xxx * temp0.xyz + float3(1, 1, 1); + // texld r1, v3, s3 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul oC0.xyz, r0, r1.x + out_color.xyz = temp0.xyz * temp1.xxx; + // + + return out_color; +} + +PixelShader PS_Scorch_Array[2] = { + compile ps_3_0 PS_Scorch_Array_Shader_0(), // 105 + compile ps_3_0 PS_Scorch_Array_Shader_1(), // 106 +}; +// VS_TerrainTile_M_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_TerrainTile_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; +}; + +struct VS_TerrainTile_M_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 color1 : COLOR1; + float4 color : COLOR; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord5 : TEXCOORD5; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +VS_TerrainTile_M_Array_Shader_0_Output VS_TerrainTile_M_Array_Shader_0(VS_TerrainTile_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_TerrainTile_M_Array_Shader_0_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -1 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r1.x, v1, c6 + temp1.x = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c5 + temp1.xyz = temp1.xxx * DirectionalLight[0].Color.xyz; + // mul oD1.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp3 r1.x, v1, c10 + temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c9 + temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz; + // dp3 r1.w, v1, c8 + temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz); + // max r1.w, r1.w, c0.y + temp1.w = max(temp1.w, float1(0)); + // mad r1.xyz, c7, r1.w, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul oD0.xyz, r1, c0.z + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, v0, c11.zwzw + temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // mul r1.xy, v0.z, c117.zwzw + temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, v0, c117, -r1 + temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT3.xy, r1, c118 + o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xw, c0 + temp1.xw = float2(1, -1); + // mul r1.xy, r1.wxzw, c12.x + temp1.xy = temp1.wx * expr12.xx; + // mul oT3.zw, r1.xyxy, v0.xyyx + o.texcoord3.zw = temp1.xy * i.position.yx; + // dp4 oT5.x, r0, c113 + o.texcoord5.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 oT5.y, r0, c114 + o.texcoord5.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 oT5.z, r0, c115 + o.texcoord5.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 oT5.w, r0, c116 + o.texcoord5.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov oD0.w, c0.x + o.color.w = float1(1); + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, c0.y + o.texcoord.zw = float2(0, 0); + // mov oT1, c0.y + o.texcoord1 = float4(0, 0, 0, 0); + // + + return o; +} + +// VS_TerrainTile_M_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_TerrainTile_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +struct VS_TerrainTile_M_Array_Shader_1_Output +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 position : POSITION; + float4 color1 : COLOR1; + float4 color : COLOR; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord5 : TEXCOORD5; +}; + +VS_TerrainTile_M_Array_Shader_1_Output VS_TerrainTile_M_Array_Shader_1(VS_TerrainTile_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + VS_TerrainTile_M_Array_Shader_1_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 0.01, -1, 3.333333E-05, -0 + // def c1, 0, -0.0015, 0, 0 + // def c2, 0.5, -1, 1, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_texcoord2 v4 + // mul oT0.xy, v2, c0.z + o.texcoord.xy = i.texcoord.xy * float2(3.3333334E-05, 3.3333334E-05); + // mul oT1.xy, v3, c0.z + o.texcoord1.xy = i.texcoord1.xy * float2(3.3333334E-05, 3.3333334E-05); + // mul oT1.zw, v4.xyyx, c0.z + o.texcoord1.zw = i.texcoord2.yx * float2(3.3333334E-05, 3.3333334E-05); + // add oT0.w, v0.w, c0.y + o.texcoord.w = i.position.w + float1(-1); + // add oT0.z, v1.w, c0.y + o.texcoord.z = i.normal.w + float1(-1); + // mad r0, v0.xyzx, -c0.yyyw, -c0.wwwy + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1.xyz, v1, c0.x, c0.y + temp1.xyz = i.normal.xyz * float3(0.01, 0.01, 0.01) + float3(-1, -1, -1); + // dp3 r1.w, r1, c6 + temp1.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r1.w, r1.w, -c0.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r1.w, c5 + temp2.xyz = temp1.www * DirectionalLight[0].Color.xyz; + // mul oD1.xyz, r2, c2.x + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp3 r1.w, r1, c10 + temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.x, r1, c8 + temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r1.y, r1.w, -c0.w + temp1.y = max(temp1.w, float1(0)); + // mul r1.yzw, r1.y, c9.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz; + // max r1.x, r1.x, -c0.w + temp1.x = max(temp1.x, float1(0)); + // mad r1.xyz, c7, r1.x, r1.yzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul oD0.xyz, r1, c2.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, v0, c11.zwzw + temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // mul r1.xy, v0.z, c117.zwzw + temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, v0, c117, -r1 + temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT3.xy, r1, c118 + o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.yz, c2 + temp1.yz = float2(-1, 1); + // mul r1.xy, r1.yzzw, c12.x + temp1.xy = temp1.yz * expr12.xx; + // mul oT3.zw, r1.xyxy, v0.xyyx + o.texcoord3.zw = temp1.xy * i.position.yx; + // mov oD0.w, -c0.y + o.color.w = float1(1); + // mov oD1.w, -c0.y + o.color1.w = float1(1); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov oT5.w, r0.x + o.texcoord5.w = temp0.x; + // mad oT5.xyz, r1, r0.y, c1.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +VertexShader VS_TerrainTile_M_Array[2] = { + compile vs_2_0 VS_TerrainTile_M_Array_Shader_0(), // 109 + compile vs_2_0 VS_TerrainTile_M_Array_Shader_1(), // 110 +}; +// PS_TerrainTile_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_TerrainTile_M_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 PS_TerrainTile_M_Array_Shader_0(PS_TerrainTile_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t3, s3 + temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r1, t0, s1 + temp1 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mov r0.xyz, v1 + temp0.xyz = i.color1.xyz; + // mad r0.xyz, r0, r2, v0 + temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov r1.xy, t3.wzyx + temp1.xy = i.texcoord3.wz; + // texld r1, r1, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.xy); + // texld r2, t2, s2 + temp2 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mad r0.xyz, r0, r1, c0.y + temp0.xyz = temp0.xyz * temp1.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r2.x, r0 + temp0.xyz = temp2.xxx * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_TerrainTile_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_TerrainTile_M_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord5 : TEXCOORD5; +}; + +float4 PS_TerrainTile_M_Array_Shader_1(PS_TerrainTile_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + // def c0, 2.2, -0.0015, 1, 0 + // def c1, 0.25, 0, 0, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl t5 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // rcp r0.w, t5.w + temp0.w = 1.0f / i.texcoord5.w; + // mul r0.xy, r0.w, t5 + temp0.xy = temp0.ww * i.texcoord5.xy; + // mad r1.xy, t5, r0.w, c11.zxyw + temp1.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // mad r2.xy, t5, r0.w, c11.yzxw + temp2.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // mad r3.xy, t5, r0.w, c11.wzyx + temp3.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r4.xy, t3.wzyx + temp4.xy = i.texcoord3.wz; + // texld r5, r0, s4 + temp5 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s4 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s4 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, r3, s4 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // texld r6, t3, s3 + temp6 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r7, t0, s1 + temp7 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // texld r4, r4, s0 + temp4 = tex2D(MacroSamplerSampler, temp4.xy); + // texld r8, t2, s2 + temp8 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mov r5.y, r1.x + temp5.y = temp1.x; + // mov r5.z, r2.x + temp5.z = temp2.x; + // mad r4.w, t5.z, r0.w, c0.y + temp4.w = i.texcoord5.z * temp0.w + float1(-0.0015); + // mov r5.w, r3.x + temp5.w = temp3.x; + // add r0, r5, -r4.w + temp0 = temp5 + -temp4.w; + // cmp r0, r0, c0.z, c0.w + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.z, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c1.x + temp4.w = temp4.w * float1(0.25); + // log r0.x, r6.x + temp0.x = log2(temp6.x); + // log r0.y, r6.y + temp0.y = log2(temp6.y); + // log r0.z, r6.z + temp0.z = log2(temp6.z); + // mul r0.xyz, r0, c0.x + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, v1 + temp0.xyz = temp1.xyz * i.color1.xyz; + // mad r0.xyz, r0, r4.w, v0 + temp0.xyz = temp0.xyz * temp4.www + i.color.xyz; + // mul r0.xyz, r7, r0 + temp0.xyz = temp7.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mad r0.xyz, r0, r4, -c0.z + temp0.xyz = temp0.xyz * temp4.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r8.x, r0 + temp0.xyz = temp8.xxx * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_TerrainTile_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_TerrainTile_M_Array_Shader_2_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 PS_TerrainTile_M_Array_Shader_2(PS_TerrainTile_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float3 temp6; + // def c0, 2.2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0 + // dcl t1 + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t3, s3 + temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v1 + temp0.xyz = i.color1.xyz; + // mad r0.xyz, r0, r1, v0 + temp0.xyz = temp0.xyz * temp1.xyz + i.color.xyz; + // mov r1.xy, t1.wzyx + temp1.xy = i.texcoord1.wz; + // mov r2.xy, t3.wzyx + temp2.xy = i.texcoord3.wz; + // texld r1, r1, s1 + temp1 = tex2D(BaseSamplerClampedSampler, temp1.xy); + // texld r3, t0, s1 + temp3 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // texld r4, t1, s1 + temp4 = tex2D(BaseSamplerClampedSampler, i.texcoord1.xy); + // texld r2, r2, s0 + temp2 = tex2D(MacroSamplerSampler, temp2.xy); + // texld r5, t2, s2 + temp5 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mov_sat r5.zw, t0 + temp5.zw = saturate(i.texcoord.zw); + // lrp r6.xyz, r5.w, r4, r3 + temp6.xyz = lerp(temp3.xyz, temp4.xyz, temp5.www); + // lrp r3.xyz, r5.z, r1, r6 + temp3.xyz = lerp(temp6.xyz, temp1.xyz, temp5.zzz); + // mul r0.xyz, r0, r3 + temp0.xyz = temp0.xyz * temp3.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mad r0.xyz, r0, r2, c0.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r5.x, r0 + temp0.xyz = temp5.xxx * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_TerrainTile_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_TerrainTile_M_Array_Shader_3_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_TerrainTile_M_Array_Shader_3(PS_TerrainTile_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9; + // def c0, 2.2, 1, 0, 0.25 + // dcl v0 + // dcl v1 + // dcl t0 + // dcl t1 + // dcl t2.xy + // dcl t3 + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t5, c11.zxyw + temp0.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t5, c11.yzxw + temp1.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t5, c11.wzyx + temp2.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t1.wzyx + temp3.xy = i.texcoord1.wz; + // mov r4.xy, t3.wzyx + temp4.xy = i.texcoord3.wz; + // texld r0, r0, s4 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s4 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s4 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r5, t5, s4 + temp5 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // texld r6, t3, s3 + temp6 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r3, r3, s1 + temp3 = tex2D(BaseSamplerClampedSampler, temp3.xy); + // texld r7, t0, s1 + temp7 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // texld r8, t1, s1 + temp8 = tex2D(BaseSamplerClampedSampler, i.texcoord1.xy); + // texld r4, r4, s0 + temp4 = tex2D(MacroSamplerSampler, temp4.xy); + // texld r9, t2, s2 + temp9 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mov r5.y, r0.x + temp5.y = temp0.x; + // mov r5.z, r1.x + temp5.z = temp1.x; + // mov r5.w, r2.x + temp5.w = temp2.x; + // add r0, r5, -t5.z + temp0 = temp5 + -i.texcoord5.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.y, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.w + temp3.w = temp3.w * float1(0.25); + // log r0.x, r6.x + temp0.x = log2(temp6.x); + // log r0.y, r6.y + temp0.y = log2(temp6.y); + // log r0.z, r6.z + temp0.z = log2(temp6.z); + // mul r0.xyz, r0, c0.x + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, v1 + temp0.xyz = temp1.xyz * i.color1.xyz; + // mad r0.xyz, r0, r3.w, v0 + temp0.xyz = temp0.xyz * temp3.www + i.color.xyz; + // mov_sat r1.xy, t0.wzyx + temp1.xy = saturate(i.texcoord.wz); + // lrp r2.xyz, r1.x, r8, r7 + temp2.xyz = lerp(temp7.xyz, temp8.xyz, temp1.xxx); + // lrp r5.xyz, r1.y, r3, r2 + temp5.xyz = lerp(temp2.xyz, temp3.xyz, temp1.yyy); + // mul r0.xyz, r0, r5 + temp0.xyz = temp0.xyz * temp5.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mad r0.xyz, r0, r4, -c0.y + temp0.xyz = temp0.xyz * temp4.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r9.x, r0 + temp0.xyz = temp9.xxx * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_TerrainTile_M_Array[4] = { + compile ps_2_0 PS_TerrainTile_M_Array_Shader_0(), // 111 + compile ps_2_0 PS_TerrainTile_M_Array_Shader_1(), // 112 + compile ps_2_0 PS_TerrainTile_M_Array_Shader_2(), // 113 + compile ps_2_0 PS_TerrainTile_M_Array_Shader_3(), // 114 +}; +// PS_Cliff_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Cliff_M_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 PS_Cliff_M_Array_Shader_0(PS_Cliff_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, 2.2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t3, s3 + temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r1, t0, s1 + temp1 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mov r0.xyz, v1 + temp0.xyz = i.color1.xyz; + // mad r0.xyz, r0, r2, v0 + temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov r1.xy, t3.wzyx + temp1.xy = i.texcoord3.wz; + // texld r1, r1, s0 + temp1 = tex2D(MacroSamplerSampler, temp1.xy); + // texld r2, t2, s2 + temp2 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mad r0.xyz, r0, r1, c0.y + temp0.xyz = temp0.xyz * temp1.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r2.x, r0 + temp0.xyz = temp2.xxx * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Cliff_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Cliff_M_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Cliff_M_Array_Shader_1(PS_Cliff_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 2.2, 1, 0, 0.25 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t5, c11.zxyw + temp0.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t5, c11.yzxw + temp1.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t5, c11.wzyx + temp2.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t3.wzyx + temp3.xy = i.texcoord3.wz; + // texld r0, r0, s4 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s4 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s4 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t5, s4 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // texld r5, t3, s3 + temp5 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r6, t0, s1 + temp6 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy); + // texld r3, r3, s0 + temp3 = tex2D(MacroSamplerSampler, temp3.xy); + // texld r7, t2, s2 + temp7 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t5.z + temp0 = temp4 + -i.texcoord5.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.y, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.w + temp3.w = temp3.w * float1(0.25); + // log r0.x, r5.x + temp0.x = log2(temp5.x); + // log r0.y, r5.y + temp0.y = log2(temp5.y); + // log r0.z, r5.z + temp0.z = log2(temp5.z); + // mul r0.xyz, r0, c0.x + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, v1 + temp0.xyz = temp1.xyz * i.color1.xyz; + // mad r0.xyz, r0, r3.w, v0 + temp0.xyz = temp0.xyz * temp3.www + i.color.xyz; + // mul r0.xyz, r6, r0 + temp0.xyz = temp6.xyz * temp0.xyz; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mad r0.xyz, r0, r3, -c0.y + temp0.xyz = temp0.xyz * temp3.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r0.xyz, r7.x, r0 + temp0.xyz = temp7.xxx * temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_Cliff_M_Array[2] = { + compile ps_2_0 PS_Cliff_M_Array_Shader_0(), // 117 + compile ps_2_0 PS_Cliff_M_Array_Shader_1(), // 118 +}; +// PS_Road_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Road_M_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 PS_Road_M_Array_Shader_0(PS_Road_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2.2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t3, s3 + temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r1, t0, s1 + temp1 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mov r0.xyz, v1 + temp0.xyz = i.color1.xyz; + // mad r0.xyz, r0, r2, v0 + temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov r2.xy, t3.wzyx + temp2.xy = i.texcoord3.wz; + // texld r2, r2, s0 + temp2 = tex2D(MacroSamplerSampler, temp2.xy); + // texld r3, t2, s2 + temp3 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mad r0.xyz, r0, r2, c0.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r1.xyz, r3.x, r0 + temp1.xyz = temp3.xxx * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Road_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Road_M_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord5 : TEXCOORD5; +}; + +float4 PS_Road_M_Array_Shader_1(PS_Road_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; + // def c0, 2.2, -0.0015, 1, 0 + // def c1, 0.25, 0, 0, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl t5 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // rcp r0.w, t5.w + temp0.w = 1.0f / i.texcoord5.w; + // mul r0.xy, r0.w, t5 + temp0.xy = temp0.ww * i.texcoord5.xy; + // mad r1.xy, t5, r0.w, c11.zxyw + temp1.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // mad r2.xy, t5, r0.w, c11.yzxw + temp2.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // mad r3.xy, t5, r0.w, c11.wzyx + temp3.xy = i.texcoord5.xy * temp0.ww + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r4.xy, t3.wzyx + temp4.xy = i.texcoord3.wz; + // texld r5, r0, s4 + temp5 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s4 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s4 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, r3, s4 + temp3 = tex2D(ShadowMapSampler, temp3.xy); + // texld r6, t3, s3 + temp6 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r7, t0, s1 + temp7 = tex2D(BaseSamplerWrappedSampler, i.texcoord.xy); + // texld r4, r4, s0 + temp4 = tex2D(MacroSamplerSampler, temp4.xy); + // texld r8, t2, s2 + temp8 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mov r5.y, r1.x + temp5.y = temp1.x; + // mov r5.z, r2.x + temp5.z = temp2.x; + // mad r4.w, t5.z, r0.w, c0.y + temp4.w = i.texcoord5.z * temp0.w + float1(-0.0015); + // mov r5.w, r3.x + temp5.w = temp3.x; + // add r0, r5, -r4.w + temp0 = temp5 + -temp4.w; + // cmp r0, r0, c0.z, c0.w + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r4.w, c0.z, r0 + temp4.w = dot(float4(1, 1, 1, 1), temp0); + // mul r4.w, r4.w, c1.x + temp4.w = temp4.w * float1(0.25); + // log r0.x, r6.x + temp0.x = log2(temp6.x); + // log r0.y, r6.y + temp0.y = log2(temp6.y); + // log r0.z, r6.z + temp0.z = log2(temp6.z); + // mul r0.xyz, r0, c0.x + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, v1 + temp0.xyz = temp1.xyz * i.color1.xyz; + // mad r0.xyz, r0, r4.w, v0 + temp0.xyz = temp0.xyz * temp4.www + i.color.xyz; + // mul r0.xyz, r7, r0 + temp0.xyz = temp7.xyz * temp0.xyz; + // mul r1.w, r7.w, v0.w + temp1.w = temp7.w * i.color.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mad r0.xyz, r0, r4, -c0.z + temp0.xyz = temp0.xyz * temp4.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r1.xyz, r8.x, r0 + temp1.xyz = temp8.xxx * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_Road_M_Array[2] = { + compile ps_2_0 PS_Road_M_Array_Shader_0(), // 121 + compile ps_2_0 PS_Road_M_Array_Shader_1(), // 122 +}; +// PS_Scorch_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Scorch_M_Array_Shader_0_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 PS_Scorch_M_Array_Shader_0(PS_Scorch_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 2.2, -1, 1, 0 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // texld r0, t3, s3 + temp0 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r1, t0, s1 + temp1 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // log r2.x, r0.x + temp2.x = log2(temp0.x); + // log r2.y, r0.y + temp2.y = log2(temp0.y); + // log r2.z, r0.z + temp2.z = log2(temp0.z); + // mul r0.xyz, r2, c0.x + temp0.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r2.x, r0.x + temp2.x = exp2(temp0.x); + // exp r2.y, r0.y + temp2.y = exp2(temp0.y); + // exp r2.z, r0.z + temp2.z = exp2(temp0.z); + // mov r0.xyz, v1 + temp0.xyz = i.color1.xyz; + // mad r0.xyz, r0, r2, v0 + temp0.xyz = temp0.xyz * temp2.xyz + i.color.xyz; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov r2.xy, t3.wzyx + temp2.xy = i.texcoord3.wz; + // texld r2, r2, s0 + temp2 = tex2D(MacroSamplerSampler, temp2.xy); + // texld r3, t2, s2 + temp3 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mad r0.xyz, r0, r2, c0.y + temp0.xyz = temp0.xyz * temp2.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.z + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r1.xyz, r3.x, r0 + temp1.xyz = temp3.xxx * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Scorch_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Scorch_M_Array_Shader_1_Input +{ + float4 color : COLOR; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Scorch_M_Array_Shader_1(PS_Scorch_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + // def c0, 2.2, 1, 0, 0.25 + // dcl v0 + // dcl v1 + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // dcl_2d s4 + // add r0.xy, t5, c11.zxyw + temp0.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t5, c11.yzxw + temp1.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t5, c11.wzyx + temp2.xy = i.texcoord5.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t3.wzyx + temp3.xy = i.texcoord3.wz; + // texld r0, r0, s4 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s4 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s4 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t5, s4 + temp4 = tex2D(ShadowMapSampler, i.texcoord5.xy); + // texld r5, t3, s3 + temp5 = tex2D(CloudSamplerSampler, i.texcoord3.xy); + // texld r6, t0, s1 + temp6 = tex2D(BaseSamplerClampedSampler, i.texcoord.xy); + // texld r3, r3, s0 + temp3 = tex2D(MacroSamplerSampler, temp3.xy); + // texld r7, t2, s2 + temp7 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t5.z + temp0 = temp4 + -i.texcoord5.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.y, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.w + temp3.w = temp3.w * float1(0.25); + // log r0.x, r5.x + temp0.x = log2(temp5.x); + // log r0.y, r5.y + temp0.y = log2(temp5.y); + // log r0.z, r5.z + temp0.z = log2(temp5.z); + // mul r0.xyz, r0, c0.x + temp0.xyz = temp0.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mul r0.xyz, r1, v1 + temp0.xyz = temp1.xyz * i.color1.xyz; + // mad r0.xyz, r0, r3.w, v0 + temp0.xyz = temp0.xyz * temp3.www + i.color.xyz; + // mul r0.xyz, r6, r0 + temp0.xyz = temp6.xyz * temp0.xyz; + // mul r1.w, r6.w, v0.w + temp1.w = temp6.w * i.color.w; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mad r0.xyz, r0, r3, -c0.y + temp0.xyz = temp0.xyz * temp3.xyz + float3(-1, -1, -1); + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // mul r1.xyz, r7.x, r0 + temp1.xyz = temp7.xxx * temp0.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_Scorch_M_Array[2] = { + compile ps_2_0 PS_Scorch_M_Array_Shader_0(), // 125 + compile ps_2_0 PS_Scorch_M_Array_Shader_1(), // 126 +}; +// _CreateDepthMap_PixelShader25 Pixel_2_0 Has PRES False +float4 _CreateDepthMap_PixelShader25(float texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.x + // mov r0, t0.x + temp0 = texcoord.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _CreateDepthMap_VertexShader26 Vertex_2_0 Has PRES False +struct _CreateDepthMap_VertexShader26_Output +{ + float4 position : POSITION; + float texcoord : TEXCOORD; +}; + +_CreateDepthMap_VertexShader26_Output _CreateDepthMap_VertexShader26(float4 position : POSITION) +{ + _CreateDepthMap_VertexShader26_Output o; + float4 temp0; + float2 temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT0.x, r1.x, r0.x + o.texcoord = temp1.x * temp0.x; + // + + return o; +} + +// _CreateShadowMap_PixelShader27 Pixel_2_0 Has PRES False +float4 _CreateShadowMap_PixelShader27(float texcoord : TEXCOORD) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t0.x + // mov r0, t0.x + temp0 = texcoord.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _CreateShadowMap_VertexShader28 Vertex_2_0 Has PRES False +struct _CreateShadowMap_VertexShader28_Output +{ + float4 position : POSITION; + float texcoord : TEXCOORD; +}; + +_CreateShadowMap_VertexShader28_Output _CreateShadowMap_VertexShader28(float4 position : POSITION) +{ + _CreateShadowMap_VertexShader28_Output o; + float4 temp0; + float2 temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT0.x, r1.x, r0.x + o.texcoord = temp1.x * temp0.x; + // + + return o; +} + +// Scorch_L_PixelShader29 Pixel_2_0 Has PRES False +struct Scorch_L_PixelShader29_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 Scorch_L_PixelShader29(Scorch_L_PixelShader29_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(BaseSamplerClamped_LSampler, i.texcoord.xy); + // mul r1, r1, t3 + temp1 = temp1 * i.texcoord3; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Scorch_L_VertexShader30 Vertex_2_0 Has PRES False +struct Scorch_L_VertexShader30_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Scorch_L_VertexShader30_Output +{ + float4 position : POSITION; + float4 texcoord3 : TEXCOORD3; + float2 texcoord2 : TEXCOORD2; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Scorch_L_VertexShader30_Output Scorch_L_VertexShader30(Scorch_L_VertexShader30_Input i) +{ + Scorch_L_VertexShader30_Output o; + float4 temp0; + float3 temp1; + // def c0, 2.55, -1, 1, 0 + // def c1, 3.333333E-05, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // mad r0, v0.xyzx, c0.zzzw, c0.wwwz + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r0.xyz, v1, c0.x, c0.y + temp0.xyz = i.normal.xyz * float3(2.55, 2.55, 2.55) + float3(-1, -1, -1); + // dp3 r0.w, r0, c8 + temp0.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.w, r0.w, c0.w + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c7 + temp1.xyz = temp0.www * DirectionalLight[1].Color.xyz; + // dp3 r0.w, r0, c6 + temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.x, r0, c10 + temp0.x = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // max r0.y, r0.w, c0.w + temp0.y = max(temp0.w, float1(0)); + // mad r0.yzw, c5.xxyz, r0.y, r1.xxyz + temp0.yzw = DirectionalLight[0].Color.xyz * temp0.yyy + temp1.xyz; + // max r0.x, r0.x, c0.w + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c9, r0.x, r0.yzww + temp0.xyz = DirectionalLight[2].Color.xyz * temp0.xxx + temp0.yzw; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mul oT3.xyz, r0, v2 + o.texcoord3.xyz = temp0.xyz * i.color.xyz; + // add r0.xy, v0, c11.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c11 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mul oT0.xy, v3, c1.x + o.texcoord.xy = i.texcoord.xy * float2(3.3333334E-05, 3.3333334E-05); + // mov oT0.zw, c0.w + o.texcoord.zw = float2(0, 0); + // mov oT1, c0.w + o.texcoord1 = float4(0, 0, 0, 0); + // mov oT3.w, v2.w + o.texcoord3.w = i.color.w; + // + + return o; +} + +// Road_L_PixelShader31 Pixel_2_0 Has PRES False +struct Road_L_PixelShader31_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 Road_L_PixelShader31(Road_L_PixelShader31_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t2, s1 + temp0 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(BaseSamplerWrapped_LSampler, i.texcoord.xy); + // mul r1, r1, t3 + temp1 = temp1 * i.texcoord3; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// Road_L_VertexShader32 Vertex_2_0 Has PRES False +struct Road_L_VertexShader32_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Road_L_VertexShader32_Output +{ + float4 position : POSITION; + float4 texcoord3 : TEXCOORD3; + float2 texcoord2 : TEXCOORD2; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Road_L_VertexShader32_Output Road_L_VertexShader32(Road_L_VertexShader32_Input i) +{ + Road_L_VertexShader32_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v1, c8 + temp0.x = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r0.x, c7 + temp0.xyz = temp0.xxx * DirectionalLight[1].Color.xyz; + // dp3 r0.w, v1, c6 + temp0.w = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mad r0.xyz, c5, r0.w, r0 + temp0.xyz = DirectionalLight[0].Color.xyz * temp0.www + temp0.xyz; + // dp3 r0.w, v1, c10 + temp0.w = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mad r0.xyz, c9, r0.w, r0 + temp0.xyz = DirectionalLight[2].Color.xyz * temp0.www + temp0.xyz; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mul oT3.xyz, r0, v2 + o.texcoord3.xyz = temp0.xyz * i.color.xyz; + // add r0.xy, v0, c11.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c11 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, c0.y + o.texcoord.zw = float2(0, 0); + // mov oT1, c0.y + o.texcoord1 = float4(0, 0, 0, 0); + // mov oT3.w, v2.w + o.texcoord3.w = i.color.w; + // + + return o; +} + +// Cliff_L_PixelShader33 Pixel_2_0 Has PRES False +struct Cliff_L_PixelShader33_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 Cliff_L_PixelShader33(Cliff_L_PixelShader33_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // dcl t0.xy + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(BaseSamplerWrapped_LSampler, i.texcoord.xy); + // texld r1, t2, s1 + temp1 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mul r0.xyz, r0, t3 + temp0.xyz = temp0.xyz * i.texcoord3.xyz; + // mul r0.xyz, r1.x, r0 + temp0.xyz = temp1.xxx * temp0.xyz; + // mov r0.w, t3.w + temp0.w = i.texcoord3.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Cliff_L_VertexShader34 Vertex_2_0 Has PRES False +struct Cliff_L_VertexShader34_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Cliff_L_VertexShader34_Output +{ + float4 position : POSITION; + float4 texcoord3 : TEXCOORD3; + float2 texcoord2 : TEXCOORD2; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Cliff_L_VertexShader34_Output Cliff_L_VertexShader34(Cliff_L_VertexShader34_Input i) +{ + Cliff_L_VertexShader34_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r0.x, v1, c8 + temp0.x = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r0.x, c7 + temp0.xyz = temp0.xxx * DirectionalLight[1].Color.xyz; + // dp3 r0.w, v1, c6 + temp0.w = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mad r0.xyz, c5, r0.w, r0 + temp0.xyz = DirectionalLight[0].Color.xyz * temp0.www + temp0.xyz; + // dp3 r0.w, v1, c10 + temp0.w = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mad r0.xyz, c9, r0.w, r0 + temp0.xyz = DirectionalLight[2].Color.xyz * temp0.www + temp0.xyz; + // add r0.xyz, r0, c4 + temp0.xyz = temp0.xyz + AmbientLightColor.xyz; + // mul oT3.xyz, r0, v2 + o.texcoord3.xyz = temp0.xyz * i.color.xyz; + // add r0.xy, v0, c11.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c11 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, c0.y + o.texcoord.zw = float2(0, 0); + // mov oT1, c0.y + o.texcoord1 = float4(0, 0, 0, 0); + // mov oT3.w, v2.w + o.texcoord3.w = i.color.w; + // + + return o; +} + +// TerrainTile_L_PixelShader35 Pixel_2_0 Has PRES False +struct TerrainTile_L_PixelShader35_Input +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; +}; + +float4 TerrainTile_L_PixelShader35(TerrainTile_L_PixelShader35_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // dcl t0 + // dcl t1 + // dcl t2.xy + // dcl t3 + // dcl_2d s0 + // dcl_2d s1 + // mov r0.xy, t1.wzyx + temp0.xy = i.texcoord1.wz; + // texld r0, r0, s0 + temp0 = tex2D(BaseSamplerClamped_LSampler, temp0.xy); + // texld r1, t0, s0 + temp1 = tex2D(BaseSamplerClamped_LSampler, i.texcoord.xy); + // texld r2, t1, s0 + temp2 = tex2D(BaseSamplerClamped_LSampler, i.texcoord1.xy); + // texld r3, t2, s1 + temp3 = tex2D(ShroudSamplerSampler, i.texcoord2.xy); + // mov_sat r3.zw, t0 + temp3.zw = saturate(i.texcoord.zw); + // lrp r4.xyz, r3.w, r2, r1 + temp4.xyz = lerp(temp1.xyz, temp2.xyz, temp3.www); + // lrp r1.xyz, r3.z, r0, r4 + temp1.xyz = lerp(temp4.xyz, temp0.xyz, temp3.zzz); + // mul r0.xyz, r1, t3 + temp0.xyz = temp1.xyz * i.texcoord3.xyz; + // mul r0.xyz, r3.x, r0 + temp0.xyz = temp3.xxx * temp0.xyz; + // mov r0.w, t3.w + temp0.w = i.texcoord3.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// TerrainTile_L_VertexShader36 Vertex_2_0 Has PRES False +struct TerrainTile_L_VertexShader36_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; +}; + +struct TerrainTile_L_VertexShader36_Output +{ + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 position : POSITION; + float4 texcoord3 : TEXCOORD3; + float2 texcoord2 : TEXCOORD2; +}; + +TerrainTile_L_VertexShader36_Output TerrainTile_L_VertexShader36(TerrainTile_L_VertexShader36_Input i) +{ + TerrainTile_L_VertexShader36_Output o; + float4 temp0; + float3 temp1; + // def c0, 0.01, -1, 3.333333E-05, -0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_texcoord1 v3 + // dcl_texcoord2 v4 + // mul oT0.xy, v2, c0.z + o.texcoord.xy = i.texcoord.xy * float2(3.3333334E-05, 3.3333334E-05); + // mul oT1.xy, v3, c0.z + o.texcoord1.xy = i.texcoord1.xy * float2(3.3333334E-05, 3.3333334E-05); + // mul oT1.zw, v4.xyyx, c0.z + o.texcoord1.zw = i.texcoord2.yx * float2(3.3333334E-05, 3.3333334E-05); + // add oT0.w, v0.w, c0.y + o.texcoord.w = i.position.w + float1(-1); + // add oT0.z, v1.w, c0.y + o.texcoord.z = i.normal.w + float1(-1); + // mad r0, v0.xyzx, -c0.yyyw, -c0.wwwy + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r0.xyz, v1, c0.x, c0.y + temp0.xyz = i.normal.xyz * float3(0.01, 0.01, 0.01) + float3(-1, -1, -1); + // dp3 r0.w, r0, c8 + temp0.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.w, r0.w, -c0.w + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c7 + temp1.xyz = temp0.www * DirectionalLight[1].Color.xyz; + // dp3 r0.w, r0, c6 + temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r0.x, r0, c10 + temp0.x = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // max r0.y, r0.w, -c0.w + temp0.y = max(temp0.w, float1(0)); + // mad r0.yzw, c5.xxyz, r0.y, r1.xxyz + temp0.yzw = DirectionalLight[0].Color.xyz * temp0.yyy + temp1.xyz; + // max r0.x, r0.x, -c0.w + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c9, r0.x, r0.yzww + temp0.xyz = DirectionalLight[2].Color.xyz * temp0.xxx + temp0.yzw; + // add oT3.xyz, r0, c4 + o.texcoord3.xyz = temp0.xyz + AmbientLightColor.xyz; + // add r0.xy, v0, c11.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r0, c11 + o.texcoord2 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT3.w, -c0.y + o.texcoord3.w = float1(1); + // + + return o; +} + +// Scorch_M_Expression37 Expression_2_0 Has PRES False +float Scorch_M_Expression37() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Scorch_M_VertexShader38 Vertex_2_0 Has PRES True +struct Scorch_M_VertexShader38_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Scorch_M_VertexShader38_Output +{ + float4 position : POSITION; + float4 color1 : COLOR1; + float4 color : COLOR; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord5 : TEXCOORD5; +}; + +Scorch_M_VertexShader38_Output Scorch_M_VertexShader38(Scorch_M_VertexShader38_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + Scorch_M_VertexShader38_Output o; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.55, -1, 1, 0 + // def c1, 0.5, 3.333333E-05, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // mad r0, v0.xyzx, c0.zzzw, c0.wwwz + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mad r1.xyz, v1, c0.x, c0.y + temp1.xyz = i.normal.xyz * float3(2.55, 2.55, 2.55) + float3(-1, -1, -1); + // dp3 r1.w, r1, c6 + temp1.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // max r1.w, r1.w, c0.w + temp1.w = max(temp1.w, float1(0)); + // mul r2.xyz, r1.w, c5 + temp2.xyz = temp1.www * DirectionalLight[0].Color.xyz; + // mul oD1.xyz, r2, c1.x + o.color1.xyz = temp2.xyz * float3(0.5, 0.5, 0.5); + // dp3 r1.w, r1, c10 + temp1.w = dot(temp1.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r1.x, r1, c8 + temp1.x = dot(temp1.xyz, DirectionalLight[1].Direction.xyz); + // max r1.y, r1.w, c0.w + temp1.y = max(temp1.w, float1(0)); + // mul r1.yzw, r1.y, c9.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[2].Color.xyz; + // max r1.x, r1.x, c0.w + temp1.x = max(temp1.x, float1(0)); + // mad r1.xyz, c7, r1.x, r1.yzww + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.xxx + temp1.yzw; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul r1.xyz, r1, v2 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul oD0.xyz, r1, c1.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, v0, c11.zwzw + temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // mul r1.xy, v0.z, c117.zwzw + temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, v0, c117, -r1 + temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT3.xy, r1, c118 + o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.yz, c0 + temp1.yz = float2(-1, 1); + // mul r1.xy, r1.yzzw, c12.x + temp1.xy = temp1.yz * expr12.xx; + // mul oT3.zw, r1.xyxy, v0.xyyx + o.texcoord3.zw = temp1.xy * i.position.yx; + // mov oD0.w, v2.w + o.color.w = i.color.w; + // mov oD1.w, c0.z + o.color1.w = float1(1); + // mul oT0.xy, v3, c1.y + o.texcoord.xy = i.texcoord.xy * float2(3.3333334E-05, 3.3333334E-05); + // mov oT0.zw, c0.w + o.texcoord.zw = float2(0, 0); + // mov oT1, c0.w + o.texcoord1 = float4(0, 0, 0, 0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov oT5.w, r0.x + o.texcoord5.w = temp0.x; + // mad oT5.xyz, r1, r0.y, c1.zzww + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// Road_M_Expression39 Expression_2_0 Has PRES False +float Road_M_Expression39() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Road_M_VertexShader40 Vertex_2_0 Has PRES True +struct Road_M_VertexShader40_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Road_M_VertexShader40_Output +{ + float4 position : POSITION; + float4 color1 : COLOR1; + float4 color : COLOR; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord5 : TEXCOORD5; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; +}; + +Road_M_VertexShader40_Output Road_M_VertexShader40(Road_M_VertexShader40_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + Road_M_VertexShader40_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0.5, -1 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r1.x, v1, c6 + temp1.x = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c5 + temp1.xyz = temp1.xxx * DirectionalLight[0].Color.xyz; + // mul oD1.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp3 r1.x, v1, c10 + temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c9 + temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz; + // dp3 r1.w, v1, c8 + temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz); + // max r1.w, r1.w, c0.y + temp1.w = max(temp1.w, float1(0)); + // mad r1.xyz, c7, r1.w, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul r1.xyz, r1, v2 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul oD0.xyz, r1, c0.z + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, v0, c11.zwzw + temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // mul r1.xy, v0.z, c117.zwzw + temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, v0, c117, -r1 + temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT3.xy, r1, c118 + o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xw, c0 + temp1.xw = float2(1, -1); + // mul r1.xy, r1.wxzw, c12.x + temp1.xy = temp1.wx * expr12.xx; + // mul oT3.zw, r1.xyxy, v0.xyyx + o.texcoord3.zw = temp1.xy * i.position.yx; + // dp4 oT5.x, r0, c113 + o.texcoord5.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 oT5.y, r0, c114 + o.texcoord5.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 oT5.z, r0, c115 + o.texcoord5.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 oT5.w, r0, c116 + o.texcoord5.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov oD0.w, v2.w + o.color.w = i.color.w; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, c0.y + o.texcoord.zw = float2(0, 0); + // mov oT1, c0.y + o.texcoord1 = float4(0, 0, 0, 0); + // + + return o; +} + +// Cliff_M_Expression41 Expression_2_0 Has PRES False +float Cliff_M_Expression41() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Cliff_M_VertexShader42 Vertex_2_0 Has PRES True +struct Cliff_M_VertexShader42_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Cliff_M_VertexShader42_Output +{ + float4 position : POSITION; + float4 color1 : COLOR1; + float4 color : COLOR; + float2 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float4 texcoord5 : TEXCOORD5; +}; + +Cliff_M_VertexShader42_Output Cliff_M_VertexShader42(Cliff_M_VertexShader42_Input i) +{ + /* + PRSI + OutputRegisterOffset: 12 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 12 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr12; + { + float4 temp0; + // Expression_2_1 + // mul r0.x, c0.x, (66) + temp0.x = MapCellSize.x * (66); + // rcp c12.x, r0.x + expr12.x = 1.0f / (temp0.x); + } + + Cliff_M_VertexShader42_Output o; + float4 temp0, temp1; + // def c0, 0, -0.0015, 0, 0 + // def c1, 1, 0, 0.5, -1 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // mad r0, v0.xyzx, c1.xxxy, c1.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp3 r1.x, v1, c6 + temp1.x = dot(i.normal.xyz, DirectionalLight[0].Direction.xyz); + // max r1.x, r1.x, c1.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c5 + temp1.xyz = temp1.xxx * DirectionalLight[0].Color.xyz; + // mul oD1.xyz, r1, c1.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp3 r1.x, v1, c10 + temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz); + // max r1.x, r1.x, c1.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c9 + temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz; + // dp3 r1.w, v1, c8 + temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz); + // max r1.w, r1.w, c1.y + temp1.w = max(temp1.w, float1(0)); + // mad r1.xyz, c7, r1.w, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul r1.xyz, r1, v2 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul oD0.xyz, r1, c1.z + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, v0, c11.zwzw + temp1.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT2.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // mul r1.xy, v0.z, c117.zwzw + temp1.xy = i.position.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, v0, c117, -r1 + temp1.xy = i.position.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT3.xy, r1, c118 + o.texcoord3.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.xw, c1 + temp1.xw = float2(1, -1); + // mul r1.xy, r1.wxzw, c12.x + temp1.xy = temp1.wx * expr12.xx; + // mul oT3.zw, r1.xyxy, v0.xyyx + o.texcoord3.zw = temp1.xy * i.position.yx; + // mov oD0.w, v2.w + o.color.w = i.color.w; + // mov oD1.w, c1.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov oT0.zw, c1.y + o.texcoord.zw = float2(0, 0); + // mov oT1, c1.y + o.texcoord1 = float4(0, 0, 0, 0); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov oT5.w, r0.x + o.texcoord5.w = temp0.x; + // mad oT5.xyz, r1, r0.y, c0.xxyw + o.texcoord5.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// TerrainTile_M_Expression43 Expression_2_0 Has PRES False +float TerrainTile_M_Expression43() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = IsTerrainAtlasEnabled.x + IsTerrainAtlasEnabled.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// TerrainTile_M_Expression44 Expression_2_0 Has PRES False +float TerrainTile_M_Expression44() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = IsTerrainAtlasEnabled.x; + return expr0; +} + +// Scorch_Expression45 Expression_2_0 Has PRES False +float Scorch_Expression45() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Scorch_VertexShader46 Vertex_3_0 Has PRES False +struct Scorch_VertexShader46_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; + float4 tangent : TANGENT; +}; + +struct Scorch_VertexShader46_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +Scorch_VertexShader46_Output Scorch_VertexShader46(Scorch_VertexShader46_Input i) +{ + Scorch_VertexShader46_Output o; + float4 temp0, temp1; + float3 temp2, temp4; + float2 temp3; + // def c0, 2.55, -1, 1, 0 + // def c1, 0.5, 3.333333E-05, 0, -0.0015 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // dcl_tangent v4 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2.x + // dcl_texcoord o3 + // dcl_texcoord1 o4 + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xyz + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9 + // mad r0, v0.xyzx, c0.zzzw, c0.wwwz + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xyz, c123, -v0 + temp1.xyz = EyePosition.xyz + -i.position.xyz; + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r1.xyz, r1, r1.w, c6 + temp1.xyz = temp1.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // mad r2.xyz, v4, c0.x, c0.y + temp2.xyz = i.tangent.xyz * float3(2.55, 2.55, 2.55) + float3(-1, -1, -1); + // dp3 r3.x, r1, -r2 + temp3.x = dot(temp1.xyz, -temp2.xyz); + // dp3 r2.x, c6, -r2 + temp2.x = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // mad r4.xyz, v1, c0.x, c0.y + temp4.xyz = i.normal.xyz * float3(2.55, 2.55, 2.55) + float3(-1, -1, -1); + // dp3 r3.y, r1, r4 + temp3.y = dot(temp1.xyz, temp4.xyz); + // dp3 r1.x, r3.xxyw, r3.xxyw + temp1.x = dot(temp3.xxy, temp3.xxy); + // rsq r1.x, r1.x + temp1.x = 1 / sqrt(temp1.x); + // mul o8.xyz, r3.xxyw, r1.x + o.texcoord5 = temp3.xxyw * temp1.x; + // dp3 r1.x, r4, c10 + temp1.x = dot(temp4.xyz, DirectionalLight[2].Direction.xyz); + // max r1.x, r1.x, c0.w + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c9 + temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz; + // dp3 r1.w, r4, c8 + temp1.w = dot(temp4.xyz, DirectionalLight[1].Direction.xyz); + // dp3 r2.y, c6, r4 + temp2.y = dot(DirectionalLight[0].Direction.xyz, temp4.xyz); + // max r1.w, r1.w, c0.w + temp1.w = max(temp1.w, float1(0)); + // mad r1.xyz, c7, r1.w, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul r1.xyz, r1, v2 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul o1.xyz, r1, c1.x + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, c11.zwzw, v0 + temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy; + // mul o5.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // mov o1.w, v2.w + o.color.w = i.color.w; + // mov o2.x, c0.z + o.color1 = float4(1, 1, 1, 1); + // mul o3.xy, c1.y, v3 + o.texcoord.xy = float2(3.3333334E-05, 3.3333334E-05) * i.texcoord.xy; + // mov o3.zw, c0.w + o.texcoord.zw = float2(0, 0); + // mov o4, c0.w + o.texcoord1 = float4(0, 0, 0, 0); + // mov o6.xyz, v0 + o.texcoord3 = i.position; + // max r2.z, r2.y, c0.w + temp2.z = max(temp2.y, float1(0)); + // mov o7, r2.xxyz + o.texcoord4 = temp2.xxyz; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o9.w, r0.x + o.texcoord6.w = temp0.x; + // mad o9.xyz, r1, r0.y, c1.zzww + o.texcoord6.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// Road_Expression47 Expression_2_0 Has PRES False +float Road_Expression47() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Road_VertexShader48 Vertex_3_0 Has PRES False +struct Road_VertexShader48_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Road_VertexShader48_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +Road_VertexShader48_Output Road_VertexShader48(Road_VertexShader48_Input i) +{ + Road_VertexShader48_Output o; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 1, 0, -1, 0.5 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2.x + // dcl_texcoord o3 + // dcl_texcoord1 o4 + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xyz + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1.xyz, c0.xyyw, v1.zxyw + temp1.xyz = float3(1, 0, 0) * i.normal.zxy; + // mad r1.xyz, v1.yzxw, c0.yyxw, -r1 + temp1.xyz = i.normal.yzx * float3(0, 0, 1) + -temp1.xyz; + // dp3 o7.x, c6, -r1 + o.texcoord4.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2.xyz, c0.yyzw, v1.zxyw + temp2.xyz = float3(0, 0, -1) * i.normal.zxy; + // mad r2.xyz, v1.yzxw, c0.yzyw, -r2 + temp2.xyz = i.normal.yzx * float3(0, -1, 0) + -temp2.xyz; + // dp3 o7.y, c6, -r2 + o.texcoord4.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r1.w, c6, v1 + temp1.w = dot(DirectionalLight[0].Direction.xyz, i.normal.xyz); + // max o7.w, r1.w, c0.y + o.texcoord4.w = max(temp1.w, float1(0)); + // mov o7.z, r1.w + o.texcoord4.z = temp1.w; + // add r3.xyz, c123, -v0 + temp3.xyz = EyePosition.xyz + -i.position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r3.xyz, r3, r1.w, c6 + temp3.xyz = temp3.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r3, -r1 + temp1.x = dot(temp3.xyz, -temp1.xyz); + // dp3 r1.y, r3, -r2 + temp1.y = dot(temp3.xyz, -temp2.xyz); + // dp3 r1.z, r3, v1 + temp1.z = dot(temp3.xyz, i.normal.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o8.xyz, r1, r1.w + o.texcoord5 = temp1 * temp1.w; + // dp3 r1.x, v1, c10 + temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c9 + temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz; + // dp3 r1.w, v1, c8 + temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz); + // max r1.w, r1.w, c0.y + temp1.w = max(temp1.w, float1(0)); + // mad r1.xyz, c7, r1.w, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul r1.xyz, r1, v2 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul o1.xyz, r1, c0.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, c11.zwzw, v0 + temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy; + // mul o5.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // dp4 o9.x, r0, c113 + o.texcoord6.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 o9.y, r0, c114 + o.texcoord6.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 o9.z, r0, c115 + o.texcoord6.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 o9.w, r0, c116 + o.texcoord6.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // mov o1.w, v2.w + o.color.w = i.color.w; + // mov o2.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // mov o3.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov o3.zw, c0.y + o.texcoord.zw = float2(0, 0); + // mov o4, c0.y + o.texcoord1 = float4(0, 0, 0, 0); + // mov o6.xyz, v0 + o.texcoord3 = i.position; + // + + return o; +} + +// Cliff_Expression49 Expression_2_0 Has PRES False +float Cliff_Expression49() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Cliff_VertexShader50 Vertex_3_0 Has PRES False +struct Cliff_VertexShader50_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Cliff_VertexShader50_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float color1 : COLOR1; + float4 texcoord : TEXCOORD; + float4 texcoord1 : TEXCOORD1; + float2 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord6 : TEXCOORD6; +}; + +Cliff_VertexShader50_Output Cliff_VertexShader50(Cliff_VertexShader50_Input i) +{ + Cliff_VertexShader50_Output o; + float4 temp0, temp1; + float3 temp2, temp3; + // def c0, 1, 0, -1, 0.5 + // def c1, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_color v2 + // dcl_texcoord v3 + // dcl_position o0 + // dcl_color o1 + // dcl_color1 o2.x + // dcl_texcoord o3 + // dcl_texcoord1 o4 + // dcl_texcoord2 o5.xy + // dcl_texcoord3 o6.xyz + // dcl_texcoord4 o7 + // dcl_texcoord5 o8.xyz + // dcl_texcoord6 o9 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mul r1.xyz, c0.xyyw, v1.zxyw + temp1.xyz = float3(1, 0, 0) * i.normal.zxy; + // mad r1.xyz, v1.yzxw, c0.yyxw, -r1 + temp1.xyz = i.normal.yzx * float3(0, 0, 1) + -temp1.xyz; + // dp3 o7.x, c6, -r1 + o.texcoord4.x = dot(DirectionalLight[0].Direction.xyz, -temp1.xyz); + // mul r2.xyz, c0.yyzw, v1.zxyw + temp2.xyz = float3(0, 0, -1) * i.normal.zxy; + // mad r2.xyz, v1.yzxw, c0.yzyw, -r2 + temp2.xyz = i.normal.yzx * float3(0, -1, 0) + -temp2.xyz; + // dp3 o7.y, c6, -r2 + o.texcoord4.y = dot(DirectionalLight[0].Direction.xyz, -temp2.xyz); + // dp3 r1.w, c6, v1 + temp1.w = dot(DirectionalLight[0].Direction.xyz, i.normal.xyz); + // max o7.w, r1.w, c0.y + o.texcoord4.w = max(temp1.w, float1(0)); + // mov o7.z, r1.w + o.texcoord4.z = temp1.w; + // add r3.xyz, c123, -v0 + temp3.xyz = EyePosition.xyz + -i.position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mad r3.xyz, r3, r1.w, c6 + temp3.xyz = temp3.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // dp3 r1.x, r3, -r1 + temp1.x = dot(temp3.xyz, -temp1.xyz); + // dp3 r1.y, r3, -r2 + temp1.y = dot(temp3.xyz, -temp2.xyz); + // dp3 r1.z, r3, v1 + temp1.z = dot(temp3.xyz, i.normal.xyz); + // dp3 r1.w, r1, r1 + temp1.w = dot(temp1.xyz, temp1.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mul o8.xyz, r1, r1.w + o.texcoord5 = temp1 * temp1.w; + // dp3 r1.x, v1, c10 + temp1.x = dot(i.normal.xyz, DirectionalLight[2].Direction.xyz); + // max r1.x, r1.x, c0.y + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r1.x, c9 + temp1.xyz = temp1.xxx * DirectionalLight[2].Color.xyz; + // dp3 r1.w, v1, c8 + temp1.w = dot(i.normal.xyz, DirectionalLight[1].Direction.xyz); + // max r1.w, r1.w, c0.y + temp1.w = max(temp1.w, float1(0)); + // mad r1.xyz, c7, r1.w, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp1.www + temp1.xyz; + // add r1.xyz, r1, c4 + temp1.xyz = temp1.xyz + AmbientLightColor.xyz; + // mul r1.xyz, r1, v2 + temp1.xyz = temp1.xyz * i.color.xyz; + // mul o1.xyz, r1, c0.w + o.color.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // add r1.xy, c11.zwzw, v0 + temp1.xy = Shroud.ScaleUV_OffsetUV.zw + i.position.xy; + // mul o5.xy, r1, c11 + o.texcoord2 = temp1 * Shroud.ScaleUV_OffsetUV; + // mov o1.w, v2.w + o.color.w = i.color.w; + // mov o2.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // mov o3.xy, v3 + o.texcoord.xy = i.texcoord.xy; + // mov o3.zw, c0.y + o.texcoord.zw = float2(0, 0); + // mov o4, c0.y + o.texcoord1 = float4(0, 0, 0, 0); + // mov o6.xyz, v0 + o.texcoord3 = i.position; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov o9.w, r0.x + o.texcoord6.w = temp0.x; + // mad o9.xyz, r1, r0.y, c1.xxyw + o.texcoord6.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // + + return o; +} + +// TerrainTile_Expression51 Expression_2_0 Has PRES False +float TerrainTile_Expression51() +{ + float4 temp0; + float1 expr0; + // add r0.x, c0.x, c0.x + temp0.x = IsTerrainAtlasEnabled.x + IsTerrainAtlasEnabled.x; + // add c0.x, r0.x, c1.x + expr0.x = temp0.x + HasShadow.x; + return expr0; +} + +// TerrainTile_Expression52 Expression_2_0 Has PRES False +float TerrainTile_Expression52() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = IsTerrainAtlasEnabled.x; + return expr0; +} + +technique TerrainTile +{ + pass P0 + { + VertexShader = VS_TerrainTile_Array[TerrainTile_Expression52()]; // 95 + PixelShader = PS_TerrainTile_Array[TerrainTile_Expression51()]; // 96 + ZEnable = 1; + ZWriteEnable = 1; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Cliff +{ + pass P0 + { + VertexShader = compile vs_3_0 Cliff_VertexShader50(); // 99 + PixelShader = PS_Cliff_Array[Cliff_Expression49()]; // 100 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique Road +{ + pass P0 + { + VertexShader = compile vs_3_0 Road_VertexShader48(); // 103 + PixelShader = PS_Road_Array[Road_Expression47()]; // 104 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + DepthBias = -0.0004; + } +} + +technique Scorch +{ + pass P0 + { + VertexShader = compile vs_3_0 Scorch_VertexShader46(); // 107 + PixelShader = PS_Scorch_Array[Scorch_Expression45()]; // 108 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + DepthBias = -0.0002; + } +} + +technique TerrainTile_M +{ + pass P0 + { + VertexShader = VS_TerrainTile_M_Array[TerrainTile_M_Expression44()]; // 115 + PixelShader = PS_TerrainTile_M_Array[TerrainTile_M_Expression43()]; // 116 + ZEnable = 1; + ZWriteEnable = 1; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Cliff_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Cliff_M_VertexShader42(); // 119 + PixelShader = PS_Cliff_M_Array[Cliff_M_Expression41()]; // 120 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique Road_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Road_M_VertexShader40(); // 123 + PixelShader = PS_Road_M_Array[Road_M_Expression39()]; // 124 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + DepthBias = -0.0004; + } +} + +technique Scorch_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Scorch_M_VertexShader38(); // 127 + PixelShader = PS_Scorch_M_Array[Scorch_M_Expression37()]; // 128 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + DepthBias = -0.0002; + } +} + +technique TerrainTile_L +{ + pass P0 + { + VertexShader = compile vs_2_0 TerrainTile_L_VertexShader36(); // 129 + PixelShader = compile ps_2_0 TerrainTile_L_PixelShader35(); // 130 + ZEnable = 1; + ZWriteEnable = 1; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique Cliff_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Cliff_L_VertexShader34(); // 131 + PixelShader = compile ps_2_0 Cliff_L_PixelShader33(); // 132 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique Road_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Road_L_VertexShader32(); // 133 + PixelShader = compile ps_2_0 Road_L_PixelShader31(); // 134 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + DepthBias = -0.0004; + } +} + +technique Scorch_L +{ + pass P0 + { + VertexShader = compile vs_2_0 Scorch_L_VertexShader30(); // 135 + PixelShader = compile ps_2_0 Scorch_L_PixelShader29(); // 136 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + DepthBias = -0.0002; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateShadowMap_VertexShader28(); // 137 + PixelShader = compile ps_2_0 _CreateShadowMap_PixelShader27(); // 138 + ZEnable = 1; + ZWriteEnable = 1; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + +technique _CreateDepthMap +{ + pass P0 + { + VertexShader = compile vs_2_0 _CreateDepthMap_VertexShader26(); // 139 + PixelShader = compile ps_2_0 _CreateDepthMap_PixelShader25(); // 140 + ZEnable = 1; + ZWriteEnable = 1; + ZFunc = 4; + CullMode = 2; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/terraintracks.fx b/terraintracks.fx new file mode 100644 index 0000000..4a364d6 --- /dev/null +++ b/terraintracks.fx @@ -0,0 +1,220 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +texture Texture_0 ; // 2 +sampler2D Texture_0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 5 + AddressU = 3; + AddressV = 3; + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; +}; +// Default_M_PixelShader1 Pixel_2_0 Has PRES False +struct Default_M_PixelShader1_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Default_M_PixelShader1(Default_M_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_M_VertexShader2 Vertex_2_0 Has PRES False +struct Default_M_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Default_M_VertexShader2_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Default_M_VertexShader2_Output Default_M_VertexShader2(Default_M_VertexShader2_Input i) +{ + Default_M_VertexShader2_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Default_PixelShader3 Pixel_2_0 Has PRES False +struct Default_PixelShader3_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +float4 Default_PixelShader3(Default_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + float3 temp1; + // def c0, 2.2, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r1.xyz, r1, c0.x + temp1.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.x + temp0.x = exp2(temp1.x); + // exp r0.y, r1.y + temp0.y = exp2(temp1.y); + // exp r0.z, r1.z + temp0.z = exp2(temp1.z); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_VertexShader4 Vertex_2_0 Has PRES False +struct Default_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Default_VertexShader4_Output +{ + float4 position : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD; +}; + +Default_VertexShader4_Output Default_VertexShader4(Default_VertexShader4_Input i) +{ + Default_VertexShader4_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD0, v2 + o.color = i.color; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Default +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_VertexShader4(); // 9 + PixelShader = compile ps_2_0 Default_PixelShader3(); // 10 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + ColorWriteEnable = 7; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + +technique Default_M +{ + pass P0 + { + VertexShader = compile vs_2_0 Default_M_VertexShader2(); // 11 + PixelShader = compile ps_2_0 Default_M_PixelShader1(); // 12 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + CullMode = 2; + ColorWriteEnable = 7; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + AlphaTestEnable = 0; + } +} + diff --git a/tracer.fx b/tracer.fx new file mode 100644 index 0000000..2476027 --- /dev/null +++ b/tracer.fx @@ -0,0 +1,1001 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +texture Texture_0 ; // 2 +sampler2D Texture_0Sampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 6 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float4 TexCoordTransform_0 : register(vs_2_0, c11) = { 1, 1, 0, 0 }; +bool FogEnable = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c12) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 16 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 20 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// PS_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, 2.2, -0.75, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // add r0.x, r0.x, c0.y + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.z + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // log r0.w, r1.x + temp0.w = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.y, r1.z + temp0.y = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.w + temp1.x = exp2(temp0.w); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.y + temp1.z = exp2(temp0.y); + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, 2.2, -1, 1, -0.75 + // def c1, 0, 0, 0, 0 + // dcl v0 + // dcl v1.x + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // add r0.x, r0.x, c0.w + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c1.x + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // log r0.w, r1.x + temp0.w = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.y, r1.z + temp0.y = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.w + temp1.x = exp2(temp0.w); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.y + temp1.z = exp2(temp0.y); + // mad r0.yzw, v0.wzyx, r1.wzyx, c0.y + temp0.yzw = i.color.zyx * temp1.zyx + float3(-1, -1, -1); + // mad r0.yzw, v1.x, r0, c0.z + temp0.yzw = i.color1.xxx * temp0.yzw + float3(1, 1, 1); + // mul r0.xyz, r0.x, r0.wzyx + temp0.xyz = temp0.xxx * temp0.wzy; + // mul r0.w, r1.w, v0.w + temp0.w = temp1.w * i.color.w; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, 2.2, -0.75, 0, 0 + // dcl v0 + // dcl v1.x + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // log r1.w, r0.x + temp1.w = log2(temp0.x); + // log r1.z, r0.y + temp1.z = log2(temp0.y); + // log r1.y, r0.z + temp1.y = log2(temp0.z); + // mul r1.yzw, r1, c0.x + temp1.yzw = temp1.yzw * float3(2.2, 2.2, 2.2); + // exp r0.x, r1.w + temp0.x = exp2(temp1.w); + // exp r0.y, r1.z + temp0.y = exp2(temp1.z); + // exp r0.z, r1.y + temp0.z = exp2(temp1.y); + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mul r1.yzw, r0.wzyx, v1.x + temp1.yzw = temp0.zyx * i.color1.xxx; + // add r1.x, r1.x, c0.y + temp1.x = temp1.x + float1(-0.75); + // add r1.x, r1.x, r1.x + temp1.x = temp1.x + temp1.x; + // max r2.w, r1.x, c0.z + temp2.w = max(temp1.x, float1(0)); + // add r1.x, r2.w, r2.w + temp1.x = temp2.w + temp2.w; + // mul r0.xyz, r1.wzyx, r1.x + temp0.xyz = temp1.wzy * temp1.xxx; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_Array[3] = { + compile ps_2_0 PS_Array_Shader_0(), // 25 + compile ps_2_0 PS_Array_Shader_1(), // 26 + compile ps_2_0 PS_Array_Shader_2(), // 27 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, -0.75, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // add r0.x, r0.x, c0.x + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.y + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, -1, 1, -0.75, 0 + // dcl v0 + // dcl v1.x + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // add r0.x, r0.x, c0.z + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.w + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mad r0.yzw, v0.wzyx, r1.wzyx, c0.x + temp0.yzw = i.color.zyx * temp1.zyx + float3(-1, -1, -1); + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // mad r0.yzw, v1.x, r0, c0.y + temp0.yzw = i.color1.xxx * temp0.yzw + float3(1, 1, 1); + // mul r1.xyz, r0.x, r0.wzyx + temp1.xyz = temp0.xxx * temp0.wzy; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 color : COLOR; + float color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, -0.75, 0, 0, 0 + // dcl v0 + // dcl v1.x + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // add r0.x, r0.x, c0.x + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.y + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r0.yzw, r1.wzyx, v1.x + temp0.yzw = temp1.zyx * i.color1.xxx; + // mul r1.xyz, r0.x, r0.wzyx + temp1.xyz = temp0.xxx * temp0.wzy; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_M_Array[3] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 32 + compile ps_2_0 PS_M_Array_Shader_1(), // 33 + compile ps_2_0 PS_M_Array_Shader_2(), // 34 +}; +// _Alpha_L_PixelShader7 Pixel_2_0 Has PRES False +struct _Alpha_L_PixelShader7_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 _Alpha_L_PixelShader7(_Alpha_L_PixelShader7_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, -0.75, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // add r0.x, r0.x, c0.x + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.y + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// _Alpha_L_VertexShader8 Vertex_2_0 Has PRES True +struct _Alpha_L_VertexShader8_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct _Alpha_L_VertexShader8_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; + float color1 : COLOR1; +}; + +_Alpha_L_VertexShader8_Output _Alpha_L_VertexShader8(_Alpha_L_VertexShader8_Input i) +{ + /* + PRSI + OutputRegisterOffset: 13 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 13 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr13; + { + // Expression_2_1 + // mul c13.xy, c1.x, c0.zw + expr13.xy = Time.x * TexCoordTransform_0.zw; + } + + _Alpha_L_VertexShader8_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c11 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v1, r0, c13 + o.texcoord = i.texcoord * temp0 + expr13; + // add r0.xy, v0, c12.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c12 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, v2 + o.color = i.color; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// _Additive_L_PixelShader9 Pixel_2_0 Has PRES False +struct _Additive_L_PixelShader9_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 _Additive_L_PixelShader9(_Additive_L_PixelShader9_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, -0.75, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // add r0.x, r0.x, c0.x + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.y + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// _Additive_L_VertexShader10 Vertex_2_0 Has PRES True +struct _Additive_L_VertexShader10_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct _Additive_L_VertexShader10_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; + float color1 : COLOR1; +}; + +_Additive_L_VertexShader10_Output _Additive_L_VertexShader10(_Additive_L_VertexShader10_Input i) +{ + /* + PRSI + OutputRegisterOffset: 13 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 13 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr13; + { + // Expression_2_1 + // mul c13.xy, c1.x, c0.zw + expr13.xy = Time.x * TexCoordTransform_0.zw; + } + + _Additive_L_VertexShader10_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c11 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v1, r0, c13 + o.texcoord = i.texcoord * temp0 + expr13; + // add r0.xy, v0, c12.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c12 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, v2 + o.color = i.color; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// _Alpha_M_VertexShader11 Vertex_2_0 Has PRES True +struct _Alpha_M_VertexShader11_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct _Alpha_M_VertexShader11_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; + float color1 : COLOR1; +}; + +_Alpha_M_VertexShader11_Output _Alpha_M_VertexShader11(_Alpha_M_VertexShader11_Input i) +{ + /* + PRSI + OutputRegisterOffset: 13 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 13 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr13; + { + // Expression_2_1 + // mul c13.xy, c1.x, c0.zw + expr13.xy = Time.x * TexCoordTransform_0.zw; + } + + _Alpha_M_VertexShader11_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c11 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v1, r0, c13 + o.texcoord = i.texcoord * temp0 + expr13; + // add r0.xy, v0, c12.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c12 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, v2 + o.color = i.color; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// _Additive_M_VertexShader12 Vertex_2_0 Has PRES True +struct _Additive_M_VertexShader12_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct _Additive_M_VertexShader12_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; + float color1 : COLOR1; +}; + +_Additive_M_VertexShader12_Output _Additive_M_VertexShader12(_Additive_M_VertexShader12_Input i) +{ + /* + PRSI + OutputRegisterOffset: 13 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 13 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr13; + { + // Expression_2_1 + // mul c13.xy, c1.x, c0.zw + expr13.xy = Time.x * TexCoordTransform_0.zw; + } + + _Additive_M_VertexShader12_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c11 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v1, r0, c13 + o.texcoord = i.texcoord * temp0 + expr13; + // add r0.xy, v0, c12.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c12 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, v2 + o.color = i.color; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// Alpha_VertexShader13 Vertex_2_0 Has PRES True +struct Alpha_VertexShader13_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Alpha_VertexShader13_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; + float color1 : COLOR1; +}; + +Alpha_VertexShader13_Output Alpha_VertexShader13(Alpha_VertexShader13_Input i) +{ + /* + PRSI + OutputRegisterOffset: 13 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 13 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr13; + { + // Expression_2_1 + // mul c13.xy, c1.x, c0.zw + expr13.xy = Time.x * TexCoordTransform_0.zw; + } + + Alpha_VertexShader13_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c11 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v1, r0, c13 + o.texcoord = i.texcoord * temp0 + expr13; + // add r0.xy, v0, c12.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c12 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, v2 + o.color = i.color; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// Additive_VertexShader14 Vertex_2_0 Has PRES True +struct Additive_VertexShader14_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Additive_VertexShader14_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; + float color1 : COLOR1; +}; + +Additive_VertexShader14_Output Additive_VertexShader14(Additive_VertexShader14_Input i) +{ + /* + PRSI + OutputRegisterOffset: 13 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 13 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr13; + { + // Expression_2_1 + // mul c13.xy, c1.x, c0.zw + expr13.xy = Time.x * TexCoordTransform_0.zw; + } + + Additive_VertexShader14_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov r0.xy, c11 + temp0.xy = TexCoordTransform_0.xy; + // mad oT0.xy, v1, r0, c13 + o.texcoord = i.texcoord * temp0 + expr13; + // add r0.xy, v0, c12.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c12 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, v2 + o.color = i.color; + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +technique Additive +{ + pass P0 + { + VertexShader = compile vs_2_0 Additive_VertexShader14(); // 28 + PixelShader = ; // 29 + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + CullMode = 1; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + SrcBlend = 2; + DestBlend = 2; + } +} + +technique Alpha +{ + pass P0 + { + VertexShader = compile vs_2_0 Alpha_VertexShader13(); // 30 + PixelShader = ; // 31 + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + CullMode = 1; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + SrcBlend = 5; + DestBlend = 6; + } +} + +technique _Additive_M +{ + pass P0 + { + VertexShader = compile vs_2_0 _Additive_M_VertexShader12(); // 35 + PixelShader = ; // 36 + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + CullMode = 1; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + SrcBlend = 2; + DestBlend = 2; + } +} + +technique _Alpha_M +{ + pass P0 + { + VertexShader = compile vs_2_0 _Alpha_M_VertexShader11(); // 37 + PixelShader = ; // 38 + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + CullMode = 1; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + SrcBlend = 5; + DestBlend = 6; + } +} + +technique _Additive_L +{ + pass P0 + { + VertexShader = compile vs_2_0 _Additive_L_VertexShader10(); // 39 + PixelShader = compile ps_2_0 _Additive_L_PixelShader9(); // 40 + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + CullMode = 1; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + SrcBlend = 2; + DestBlend = 2; + } +} + +technique _Alpha_L +{ + pass P0 + { + VertexShader = compile vs_2_0 _Alpha_L_VertexShader8(); // 41 + PixelShader = compile ps_2_0 _Alpha_L_PixelShader7(); // 42 + AlphaBlendEnable = 1; + AlphaTestEnable = 0; + CullMode = 1; + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 0; + SrcBlend = 5; + DestBlend = 6; + } +} + diff --git a/trail.fx b/trail.fx new file mode 100644 index 0000000..50022c5 --- /dev/null +++ b/trail.fx @@ -0,0 +1,286 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] ; +struct { + float4 VideoTex_NumPerRow_LastFrame_SingleRow_isRand; + float4 ColorAnimationFunctions[6]; + float4 TimeKeys; + int ShaderType; + float SpeedMultiplier; + float2 ColorScaleRange; +} Draw = { 4, 15, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -0.1, 0.2 }; +struct { + float3 Gravity; + float3 DriftVelocity; + float2 VelocityDampingRange; +} Physics = { 0, 0, 0, 0, 0, 0, 1, 0 }; +struct { + float3 Size_Rate_Damping__Min; + float3 Size_Rate_Damping__Spread; + float3 XYRotation_Rate_Damping__Min; + float3 XYRotation_Rate_Damping__Spread; + float3 ZRotation_Rate_Damping__Min; + float3 ZRotation_Rate_Damping__Spread; +} Update = { 0, 0, 1, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; +texture DiffuseTexture ; // 8 +sampler2D DiffuseTextureSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 11 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c11) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 17 +sampler2D ShroudTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 21 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +// PS_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 color : COLOR; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, -0.75, 0, 0, 0 + // dcl v0 + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // add r0.x, r0.x, c0.x + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.y + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r1.xyz, r0.x, r1 + temp1.xyz = temp0.xxx * temp1.xyz; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, -1, 1, -0.75, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // add r0.x, r0.x, c0.z + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.w + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mad r0.yzw, r1.wzyx, v0.wzyx, c0.x + temp0.yzw = temp1.zyx * i.color.zyx + float3(-1, -1, -1); + // mul r1.w, r1.w, v0.w + temp1.w = temp1.w * i.color.w; + // mad r0.yzw, v1.wzyx, r0, c0.y + temp0.yzw = i.color1.zyx * temp0.yzw + float3(1, 1, 1); + // mul r1.xyz, r0.x, r0.wzyx + temp1.xyz = temp0.xxx * temp0.wzy; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float4 temp2; + // def c0, -0.75, 0, 0, 0 + // dcl v0 + // dcl v1.xyz + // dcl t0.xy + // dcl t1.xy + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t1, s1 + temp0 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // texld r1, t0, s0 + temp1 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // add r0.x, r0.x, c0.x + temp0.x = temp0.x + float1(-0.75); + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // max r2.w, r0.x, c0.y + temp2.w = max(temp0.x, float1(0)); + // add r0.x, r2.w, r2.w + temp0.x = temp2.w + temp2.w; + // mul r1, r1, v0 + temp1 = temp1 * i.color; + // mul r0.yzw, r1.wzyx, v1.wzyx + temp0.yzw = temp1.zyx * i.color1.zyx; + // mul r1.xyz, r0.x, r0.wzyx + temp1.xyz = temp0.xxx * temp0.wzy; + // mov oC0, r1 + out_color = temp1; + // + + return out_color; +} + +PixelShader PS_Array[3] = { + compile ps_2_0 PS_Array_Shader_0(), // 26 + compile ps_2_0 PS_Array_Shader_1(), // 27 + compile ps_2_0 PS_Array_Shader_2(), // 28 +}; +// Default_Expression4 Expression_2_0 Has PRES False +float Default_Expression4() +{ + float1 expr0; + // mov c0.x, (0) + expr0.x = (0); + return expr0; +} + +// Default_VertexShader5 Vertex_2_0 Has PRES False +struct Default_VertexShader5_Input +{ + float4 position : POSITION; + float4 color : COLOR; + float4 texcoord : TEXCOORD; +}; + +struct Default_VertexShader5_Output +{ + float4 position : POSITION; + float2 texcoord1 : TEXCOORD1; + float4 color : COLOR; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; +}; + +Default_VertexShader5_Output Default_VertexShader5(Default_VertexShader5_Input i) +{ + Default_VertexShader5_Output o; + float4 temp0; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_color v1 + // dcl_texcoord v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, v0, c11.zwzw + temp0.xy = i.position.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c11 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oD0, v1 + o.color = i.color; + // mov oD1.xyz, c0.x + o.color1 = float4(1, 1, 1, 1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Default +{ + pass pass0 + { + VertexShader = compile vs_2_0 Default_VertexShader5(); // 30 + PixelShader = PS_Array[Default_Expression4()]; // 31 + ZEnable = 1; + ZWriteEnable = 0; + ZFunc = 4; + CullMode = 1; + AlphaBlendEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + diff --git a/tree.fx b/tree.fx new file mode 100644 index 0000000..abe4128 --- /dev/null +++ b/tree.fx @@ -0,0 +1,3473 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) : register(vs_3_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) : register(vs_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_3_0, c89) ; +struct +{ + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud : register(vs_2_0, c117) : register(vs_3_0, c117) ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) : register(vs_3_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(vs_3_0, c1) = { 1 }; +float3 TintColor : register(vs_2_0, c2) : register(vs_3_0, c2) = { 1, 1, 1 }; +float3 EyePosition : register(vs_2_0, c123) : register(vs_3_0, c123) ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) : register(vs_3_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) : register(vs_3_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) : register(ps_3_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124) : register(vs_3_0, c124); +float Time : Time; +float3 ColorAmbient : register(vs_2_0, c11) : register(vs_3_0, c14) = { 1, 1, 1 }; +float3 ColorDiffuse : register(vs_2_0, c12) : register(vs_3_0, c15) = { 1, 1, 1 }; +float3 ColorSpecular : register(vs_2_0, c13) : register(vs_3_0, c16) ; +float Shininess : register(vs_2_0, c14) : register(vs_3_0, c17) = { 1 }; +float3 ColorEmissive : register(vs_2_0, c15) : register(vs_3_0, c18) ; +texture Texture_0 ; // 28 +sampler2D Texture_0Sampler : register(ps_2_0, s1) : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 30 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +bool DepthWriteEnable = { 1 }; +bool AlphaTestEnable ; +bool CullingEnable = { 1 }; +int BlendMode ; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c16) : register(vs_3_0, c19) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 39 +sampler2D ShroudTextureSampler : register(ps_2_0, s2) : register(ps_3_0, s2) = +sampler_state +{ + Texture = ; // 42 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CloudTexture ; // 46 +sampler2D CloudTextureSampler : register(ps_2_0, s3) : register(ps_3_0, s3) = +sampler_state +{ + Texture = ; // 50 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +// VS_Array_Shader_0 Vertex_3_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // mul r2.xyz, c2, v3 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 o0.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r1, c123 + temp3.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mad r4.xyz, r3, r0.w, c6 + temp4.xyz = temp3.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r2.w, r0, c6 + temp2.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r3.w, r0, r5 + temp3.w = dot(temp0.xyz, temp5.xyz); + // slt r4.x, -r2.w, r2.w + temp4.x = (-temp2.w < temp2.w) ? 1 : 0; + // mul r2.w, r2.w, r4.x + temp2.w = temp2.w * temp4.x; + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r4.x, r4.x, r4.y + temp4.x = temp4.x * temp4.y; + // pow r4.y, r3.w, c17.x + temp4.y = pow(temp3.w, Shininess.x); + // mul r3.w, r4.x, r4.y + temp3.w = temp4.x * temp4.y; + // mul r4.xyz, r2.w, c5 + temp4.xyz = temp2.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r3.w, c5 + temp5.xyz = temp3.www * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4, c15 + temp4.xyz = temp4.xyz * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r3.w, r2.w, r2.w + temp3.w = temp2.w + temp2.w; + // mova a0.x, r3.w + addr0.x = temp3.w; + // mad r6.xyz, r3, r0.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.w, r0, c6[a0.x] + temp3.w = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r4.w, r0, r7 + temp4.w = dot(temp0.xyz, temp7.xyz); + // slt r5.w, -r3.w, r3.w + temp5.w = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r5.w + temp3.w = temp3.w * temp5.w; + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r5.w, r5.w, r6.x + temp5.w = temp5.w * temp6.x; + // pow r6.x, r4.w, c17.x + temp6.x = pow(temp4.w, Shininess.x); + // mul r4.w, r5.w, r6.x + temp4.w = temp5.w * temp6.x; + // mad r4.xyz, c5[a0.x], r3.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp3.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r4.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp5.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // add r3.xyz, -r1, c90 + temp3.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c89 + temp6.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r6, r0.w + temp3.xyz = temp6.xyz * temp0.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r1, c93 + temp4.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // add r0.w, r2.w, -c94.x + temp0.w = temp2.w + -PointLight[1].Range_Inner_Outer.x; + // add r2.w, -c94.x, c94.y + temp2.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c92 + temp6.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r4 + temp0.w = dot(temp0.xyz, temp4.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r4.xyz, r6, r0.w + temp4.xyz = temp6.xyz * temp0.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r1, c96 + temp4.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r4, r4 + temp0.w = dot(temp4.xyz, temp4.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r4.xyz, r4, r0.w + temp4.xyz = temp4.xyz * temp0.www; + // add r0.w, r2.w, -c97.x + temp0.w = temp2.w + -PointLight[2].Range_Inner_Outer.x; + // add r2.w, -c97.x, c97.y + temp2.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad_sat r0.w, r0.w, -r2.w, c0.x + temp0.w = saturate(temp0.w * -temp2.w + float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r6.xyz, r0.w, c95 + temp6.xyz = temp0.www * PointLight[2].Color.xyz; + // dp3 r0.x, r0, r4 + temp0.x = dot(temp0.xyz, temp4.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mul r0.xyz, r6, r0.x + temp0.xyz = temp6.xyz * temp0.xxx; + // mad r0.xyz, c13.x, r0, r3 + temp0.xyz = expr13.xxx * temp0.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r0.xyz, r0, c15, r3 + temp0.xyz = temp0.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r0.xyz, r2, r0 + temp0.xyz = temp2.xyz * temp0.xyz; + // mul o1.xyz, r0, c0.z + o.texcoord1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, c1.x, v3.w + o.texcoord1.w = OpacityOverride.x * i.color.w; + // mul r0.xyz, r5, c16 + temp0.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r0, c0.z + o.color1.xyz = temp0.xyz * float3(0.5, 0.5, 0.5); + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r1.z, c117.zwzw + temp2.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r1, c117, -r2 + temp2.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r1.xy, r1.yxzw, c19.wzzw + temp1.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r1.xyxy, c19.xyyx + o.texcoord2.zw = temp1.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v2 + o.texcoord = i.texcoord; + // mad o5.xyz, r0, r1.w, c3.xxyw + o.texcoord3.xyz = temp0.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_1 Vertex_3_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float addr0; + float3 temp6, temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // add r0.y, -r0.x, v0.x + temp0.y = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // slt r0.x, -r0.x, r0.x + temp0.x = (-temp0.x < temp0.x) ? 1 : 0; + // mad r0.x, r0.z, r0.x, r0.y + temp0.x = temp0.z * temp0.x + temp0.y; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r1.w, v4.w, c129[a0.x].w + temp1.w = i.color.w * WorldBones[1 + addr0.x].w; + // mul r2.xyz, c2, v4 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mad r4.xyz, r3, r2.w, c6 + temp4.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.x, r1, r5 + temp4.x = dot(temp1.xyz, temp5.xyz); + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r4.y + temp3.w = temp3.w * temp4.y; + // slt r4.z, -r4.x, r4.x + temp4.z = (-temp4.x < temp4.x) ? 1 : 0; + // mul r4.y, r4.y, r4.z + temp4.y = temp4.y * temp4.z; + // pow r5.x, r4.x, c17.x + temp5.x = pow(temp4.x, Shininess.x); + // mul r4.x, r4.y, r5.x + temp4.x = temp4.y * temp5.x; + // mul r4.yzw, r3.w, c5.xxyz + temp4.yzw = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r4.x, c5 + temp5.xyz = temp4.xxx * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4.yzww, c15 + temp4.xyz = temp4.yzw * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r3, r2.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r7 + temp5.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // slt r6.y, -r5.w, r5.w + temp6.y = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r5.w, c17.x + temp6.y = pow(temp5.w, Shininess.x); + // mul r5.w, r6.x, r6.y + temp5.w = temp6.x * temp6.y; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r5.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp5.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c89 + temp6.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r6, r2.w + temp3.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r0, c93 + temp4.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c92 + temp6.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r0, c96 + temp4.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c95 + temp6.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r4 + temp1.x = dot(temp1.xyz, temp4.xyz); + // max r1.x, r1.x, c3.x + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c13.x, r1, r3 + temp1.xyz = expr13.xxx * temp1.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r1.xyz, r1, c15, r3 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r1.xyz, r2, r1 + temp1.xyz = temp2.xyz * temp1.xyz; + // mul o1.xyz, r1, c0.z + o.texcoord1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r1.xyz, r5, c16 + temp1.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c19.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c19.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v3 + o.texcoord = i.texcoord; + // mad o5.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +// VS_Array_Shader_2 Vertex_3_0 Has PRES True +struct VS_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_2_Output +{ + float4 position : POSITION; + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +VS_Array_Shader_2_Output VS_Array_Shader_2(VS_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 3 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 3 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + { + // Expression_2_1 + // lt c11.x, (0), c0.x + expr11.x = (0) < NumPointLights.x; + // lt c12.x, (1), c0.x + expr12.x = (1) < NumPointLights.x; + // lt c13.x, (2), c0.x + expr13.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + float2 addr0; + float3 temp6, temp7; + // def c0, 1, -1, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // dcl_position o0 + // dcl_texcoord1 o1 + // dcl_color1 o2 + // dcl_texcoord o3.xy + // dcl_texcoord2 o4 + // dcl_texcoord3 o5 + // dcl_texcoord4 o6.xyz + // dcl_texcoord5 o7.xyz + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // add r0.zw, -r0.xyxy, v0.xyxy + temp0.zw = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // slt r0.xy, -r0, r0 + temp0.xy = (-temp0.xy < temp0.xy) ? 1 : 0; + // mad r0.xy, r1, r0, r0.zwzw + temp0.xy = temp1.xy * temp0.xy + temp0.zw; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c0.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // mul r1.w, v1.y, c129[a0.y].w + temp1.w = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r1.w, c129[a0.x].w, v1.x, r1.w + temp1.w = WorldBones[1 + addr0.x].w * i.blendweight.x + temp1.w; + // mul r1.w, r1.w, v7.w + temp1.w = temp1.w * i.color.w; + // mul r2.xyz, c2, v7 + temp2.xyz = TintColor.xyz * i.color.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 o0.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 o0.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 o0.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 o0.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r3.xyz, -r0, c123 + temp3.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // mad r4.xyz, r3, r2.w, c6 + temp4.xyz = temp3.xyz * temp2.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r4 + temp5.xyz = normalize(temp4.xyz).xyz; + // dp3 r3.w, r1, c6 + temp3.w = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // dp3 r4.x, r1, r5 + temp4.x = dot(temp1.xyz, temp5.xyz); + // slt r4.y, -r3.w, r3.w + temp4.y = (-temp3.w < temp3.w) ? 1 : 0; + // mul r3.w, r3.w, r4.y + temp3.w = temp3.w * temp4.y; + // slt r4.z, -r4.x, r4.x + temp4.z = (-temp4.x < temp4.x) ? 1 : 0; + // mul r4.y, r4.y, r4.z + temp4.y = temp4.y * temp4.z; + // pow r5.x, r4.x, c17.x + temp5.x = pow(temp4.x, Shininess.x); + // mul r4.x, r4.y, r5.x + temp4.x = temp4.y * temp5.x; + // mul r4.yzw, r3.w, c5.xxyz + temp4.yzw = temp3.www * DirectionalLight[0].Color.xyz; + // mul r5.xyz, r4.x, c5 + temp5.xyz = temp4.xxx * DirectionalLight[0].Color.xyz; + // mul r4.xyz, r4.yzww, c15 + temp4.xyz = temp4.yzw * ColorDiffuse.xyz; + // mul r4.xyz, r2, r4 + temp4.xyz = temp2.xyz * temp4.xyz; + // mul o6.xyz, r4, c0.z + o.texcoord4 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mul r4.xyz, r5, c16 + temp4.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o7.xyz, r4, c0.z + o.texcoord5 = temp4 * float4(0.5, 0.5, 0.5, 0.5); + // mov r4.xyz, c3.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c3.x + temp5.xyz = float3(0, 0, 0); + // mov r3.w, c0.x + temp3.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r3.w, r3.w + temp4.w = temp3.w + temp3.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r3, r2.w, c6[a0.x] + temp6.xyz = temp3.xyz * temp2.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r4.w, r1, c6[a0.x] + temp4.w = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // dp3 r5.w, r1, r7 + temp5.w = dot(temp1.xyz, temp7.xyz); + // slt r6.x, -r4.w, r4.w + temp6.x = (-temp4.w < temp4.w) ? 1 : 0; + // mul r4.w, r4.w, r6.x + temp4.w = temp4.w * temp6.x; + // slt r6.y, -r5.w, r5.w + temp6.y = (-temp5.w < temp5.w) ? 1 : 0; + // mul r6.x, r6.x, r6.y + temp6.x = temp6.x * temp6.y; + // pow r6.y, r5.w, c17.x + temp6.y = pow(temp5.w, Shininess.x); + // mul r5.w, r6.x, r6.y + temp5.w = temp6.x * temp6.y; + // mad r4.xyz, c5[a0.x], r4.w, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp4.www + temp4.xyz; + // mad r5.xyz, c5[a0.x], r5.w, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp5.www + temp5.xyz; + // add r3.w, r3.w, c0.x + temp3.w = temp3.w + float1(1); + // endrep + } + // add r3.xyz, -r0, c90 + temp3.xyz = -temp0.xyz + PointLight[0].Position.xyz; + // dp3 r2.w, r3, r3 + temp2.w = dot(temp3.xyz, temp3.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r3.xyz, r3, r2.w + temp3.xyz = temp3.xyz * temp2.www; + // add r2.w, r3.w, -c91.x + temp2.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // add r3.w, -c91.x, c91.y + temp3.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c89 + temp6.xyz = temp2.www * PointLight[0].Color.xyz; + // dp3 r2.w, r1, r3 + temp2.w = dot(temp1.xyz, temp3.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r3.xyz, r6, r2.w + temp3.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c11.x, r3, r4 + temp3.xyz = expr11.xxx * temp3.xyz + temp4.xyz; + // add r4.xyz, -r0, c93 + temp4.xyz = -temp0.xyz + PointLight[1].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c94.x + temp2.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.w, -c94.x, c94.y + temp3.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c92 + temp6.xyz = temp2.www * PointLight[1].Color.xyz; + // dp3 r2.w, r1, r4 + temp2.w = dot(temp1.xyz, temp4.xyz); + // max r2.w, r2.w, c3.x + temp2.w = max(temp2.w, float1(0)); + // mul r4.xyz, r6, r2.w + temp4.xyz = temp6.xyz * temp2.www; + // mad r3.xyz, c12.x, r4, r3 + temp3.xyz = expr12.xxx * temp4.xyz + temp3.xyz; + // add r4.xyz, -r0, c96 + temp4.xyz = -temp0.xyz + PointLight[2].Position.xyz; + // dp3 r2.w, r4, r4 + temp2.w = dot(temp4.xyz, temp4.xyz); + // rsq r2.w, r2.w + temp2.w = 1 / sqrt(temp2.w); + // rcp r3.w, r2.w + temp3.w = 1.0f / temp2.w; + // mul r4.xyz, r4, r2.w + temp4.xyz = temp4.xyz * temp2.www; + // add r2.w, r3.w, -c97.x + temp2.w = temp3.w + -PointLight[2].Range_Inner_Outer.x; + // add r3.w, -c97.x, c97.y + temp3.w = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r3.w, r3.w + temp3.w = 1.0f / temp3.w; + // mad_sat r2.w, r2.w, -r3.w, c0.x + temp2.w = saturate(temp2.w * -temp3.w + float1(1)); + // mul r2.w, r2.w, r2.w + temp2.w = temp2.w * temp2.w; + // mul r6.xyz, r2.w, c95 + temp6.xyz = temp2.www * PointLight[2].Color.xyz; + // dp3 r1.x, r1, r4 + temp1.x = dot(temp1.xyz, temp4.xyz); + // max r1.x, r1.x, c3.x + temp1.x = max(temp1.x, float1(0)); + // mul r1.xyz, r6, r1.x + temp1.xyz = temp6.xyz * temp1.xxx; + // mad r1.xyz, c13.x, r1, r3 + temp1.xyz = expr13.xxx * temp1.xyz + temp3.xyz; + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r4.xyz, c14 + temp4.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r4, c18 + temp3.xyz = temp3.xyz * temp4.xyz + ColorEmissive.xyz; + // mad r1.xyz, r1, c15, r3 + temp1.xyz = temp1.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r1.xyz, r2, r1 + temp1.xyz = temp2.xyz * temp1.xyz; + // mul o1.xyz, r1, c0.z + o.texcoord1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // mul o1.w, r1.w, c1.x + o.texcoord1.w = temp1.w * OpacityOverride.x; + // mul r1.xyz, r5, c16 + temp1.xyz = temp5.xyz * ColorSpecular.xyz; + // mul o2.xyz, r1, c0.z + o.color1.xyz = temp1.xyz * float3(0.5, 0.5, 0.5); + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r0, c116 + temp0.w = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.w, r0.w + temp1.w = 1.0f / temp0.w; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add o4.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r0.xy, r0.yxzw, c19.wzzw + temp0.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul o4.zw, r0.xyxy, c19.xyyx + o.texcoord2.zw = temp0.xy * Shroud.ScaleUV_OffsetUV.yx; + // mov o2.w, c0.x + o.color1.w = float1(1); + // mov o3.xy, v6 + o.texcoord = i.texcoord; + // mad o5.xyz, r1, r1.w, c3.xxyw + o.texcoord3.xyz = temp1.xyz * temp1.www + float3(0, 0, -0.0015); + // mov o5.w, r0.w + o.texcoord3.w = temp0.w; + // + + return o; +} + +VertexShader VS_Array[3] = { + compile vs_3_0 VS_Array_Shader_0(), // 55 + compile vs_3_0 VS_Array_Shader_1(), // 56 + compile vs_3_0 VS_Array_Shader_2(), // 57 +}; +// PS_Array_Shader_0 Pixel_3_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v5 + temp2.xyz = i.texcoord5.xyz; + // mad r1.xyz, r2, r1, v1 + temp1.xyz = temp2.xyz * temp1.xyz + i.color1.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_3_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 2, -1, 1 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c0.y, c0.z + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.w + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_2 Pixel_3_0 Has PRES False +struct PS_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_2(PS_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 0, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord4 v4.xyz + // dcl_texcoord5 v5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v3, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c0.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.x + temp1.x = exp2(temp0.x); + // exp r1.y, r0.y + temp1.y = exp2(temp0.y); + // exp r1.z, r0.z + temp1.z = exp2(temp0.z); + // mov r0.xyz, v0 + temp0.xyz = i.texcoord1.xyz; + // mad r0.xyz, v4, r1, r0 + temp0.xyz = i.texcoord4.xyz * temp1.xyz + temp0.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r1.xyz, v5, r1, r2 + temp1.xyz = i.texcoord5.xyz * temp1.xyz + temp2.xyz; + // add r0.xyz, r0, r1 + temp0.xyz = temp0.xyz + temp1.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_3 Pixel_3_0 Has PRES False +struct PS_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_3(PS_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1.xyz + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v6 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_4 Pixel_3_0 Has PRES False +struct PS_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_4(PS_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // def c1, 2, -1, 0, 0 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mad r0.xyz, r0, c1.x, c1.y + temp0.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mad r0.xyz, v1.w, r0, c0.y + temp0.xyz = i.color1.www * temp0.xyz + float3(1, 1, 1); + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +// PS_Array_Shader_5 Pixel_3_0 Has PRES False +struct PS_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_Array_Shader_5(PS_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + float3 temp2; + // def c0, 2.2, 1, 0, 0.25 + // dcl_texcoord1 v0 + // dcl_color1 v1 + // dcl_texcoord v2.xy + // dcl_texcoord2 v3 + // dcl_texcoord3 v4.xyz + // dcl_texcoord4 v5.xyz + // dcl_texcoord5 v6.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, c11.zxzw, v4 + temp0.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx + i.texcoord3.xy; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // mov r0.y, r0.x + temp0.y = temp0.x; + // add r1.xy, c11.yzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.z, r1.x + temp0.z = temp1.x; + // add r1.xy, c11.wzzw, v4 + temp1.xy = Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz + i.texcoord3.xy; + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // mov r0.w, r1.x + temp0.w = temp1.x; + // texld r1, v4, s0 + temp1 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // mov r0.x, r1.x + temp0.x = temp1.x; + // add r0, r0, -v4.z + temp0 = temp0 + -i.texcoord3.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r0.x, c0.y, r0 + temp0.x = dot(float4(1, 1, 1, 1), temp0); + // mul r0.x, r0.x, c0.w + temp0.x = temp0.x * float1(0.25); + // texld r1, v3, s3 + temp1 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // log r0.y, r1.x + temp0.y = log2(temp1.x); + // log r0.z, r1.y + temp0.z = log2(temp1.y); + // log r0.w, r1.z + temp0.w = log2(temp1.z); + // mul r0.yzw, r0, c0.x + temp0.yzw = temp0.yzw * float3(2.2, 2.2, 2.2); + // exp r1.x, r0.y + temp1.x = exp2(temp0.y); + // exp r1.y, r0.z + temp1.y = exp2(temp0.z); + // exp r1.z, r0.w + temp1.z = exp2(temp0.w); + // mul r0.xyz, r0.x, r1 + temp0.xyz = temp0.xxx * temp1.xyz; + // mov r1.xyz, v0 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, v5, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, v6, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, v0.w + temp0.w = i.texcoord1.w; + // texld r1, v2, s1 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // log r2.x, r1.x + temp2.x = log2(temp1.x); + // log r2.y, r1.y + temp2.y = log2(temp1.y); + // log r2.z, r1.z + temp2.z = log2(temp1.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // add r0.xyz, r0, r0 + temp0.xyz = temp0.xyz + temp0.xyz; + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r0, v1.w + temp0.xyz = temp0.xyz * i.color1.www; + // texld r1, v3.wzzw, s2 + temp1 = tex2D(ShroudTextureSampler, i.texcoord2.wz); + // mul oC0.xyz, r0, r1 + out_color.xyz = temp0.xyz * temp1.xyz; + // + + return out_color; +} + +PixelShader PS_Array[6] = { + compile ps_3_0 PS_Array_Shader_0(), // 58 + compile ps_3_0 PS_Array_Shader_1(), // 59 + compile ps_3_0 PS_Array_Shader_2(), // 60 + compile ps_3_0 PS_Array_Shader_3(), // 61 + compile ps_3_0 PS_Array_Shader_4(), // 62 + compile ps_3_0 PS_Array_Shader_5(), // 63 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float4 color1 : COLOR1; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float3 temp5, temp7; + float addr0; + // def c0, 1, 0, 0.5, 0 + // def c3, 0, -0.0015, 0, 0 + // defi i0, 2, 0, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // add r2.xyz, -r1, c123 + temp2.xyz = -temp1.xyz + EyePosition.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.y + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.y + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c0.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r0.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp0.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r0, r7 + temp3.y = dot(temp0.xyz, temp7.xyz); + // dp3 r3.x, r0, c6[a0.x] + temp3.x = dot(temp0.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c0.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c0.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v3, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c0.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // add r3.xy, r1.yxzw, c16.wzzw + temp3.xy = temp1.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r3.xyxy, c16.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r3.x, r0, c6 + temp3.x = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r0.w, c6 + temp2.xyz = temp2.xyz * temp0.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r0, r5 + temp3.y = dot(temp0.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r0, r3 + temp0 = lit(temp3.x, temp3.y, temp3.w); + // mul r0.xyw, r0.y, c5.xyzz + temp0.xyw = temp0.yyy * DirectionalLight[0].Color.xyz; + // mul r0.xyw, r0, c12.xyzz + temp0.xyw = temp0.xyw * ColorDiffuse.xyz; + // mul r0.xyw, r4.xyzz, r0 + temp0.xyw = temp4.xyz * temp0.xyw; + // mul oT4.xyz, r0.xyww, c0.z + o.texcoord4 = temp0.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xyz, r0.z, c5 + temp0.xyz = temp0.zzz * DirectionalLight[0].Color.xyz; + // mul r0.xyz, r0, c13 + temp0.xyz = temp0.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r0, c0.z + o.texcoord5 = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mul r0.xy, r1.z, c117.zwzw + temp0.xy = temp1.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r0.xy, r1, c117, -r0 + temp0.xy = temp1.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp0.xy; + // add oT2.xy, r0, c118 + o.texcoord2.xy = temp0.xy + Cloud.CurrentOffsetUV.xy; + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.x, r1, c116 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r0.y, r1, c113 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.z, r1, c114 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.w, r1, c115 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r0.x + temp2.x = 1.0f / temp0.x; + // mad oT3.xyz, r0.yzww, r2.x, c3.xxyw + o.texcoord3.xyz = temp0.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r0.x + o.texcoord3.w = temp0.x; + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // mul oT1.w, v3.w, c1.x + o.texcoord1.w = i.color.w * OpacityOverride.x; + // mov oD1.w, c0.x + o.color1.w = float1(1); + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_normal v2 + // dcl_texcoord v3 + // dcl_color v4 + // frc r0.x, v0.x + temp0.x = frac(i.blendindices.x); + // slt r0.y, -r0.x, r0.x + temp0.y = (-temp0.x < temp0.x) ? 1 : 0; + // add r0.x, -r0.x, v0.x + temp0.x = -temp0.x + i.blendindices.x; + // slt r0.z, v0.x, -v0.x + temp0.z = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // mad r0.x, r0.z, r0.y, r0.x + temp0.x = temp0.z * temp0.y + temp0.x; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v4.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v4, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // add r3.xy, r0.yxzw, c16.wzzw + temp3.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r3.xyxy, c16.xyyx + o.texcoord2.zw = temp3.xy * Shroud.ScaleUV_OffsetUV.yx; + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xyw, r1.y, c5.xyzz + temp1.xyw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.xyw, r1, c12.xyzz + temp1.xyw = temp1.xyw * ColorDiffuse.xyz; + // mul r1.xyw, r4.xyzz, r1 + temp1.xyw = temp4.xyz * temp1.xyw; + // mul oT4.xyz, r1.xyww, c3.z + o.texcoord4 = temp1.xyww * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xyz, r1.z, c5 + temp1.xyz = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xyz, r1, c13 + temp1.xyz = temp1.xyz * ColorSpecular.xyz; + // mul oT5.xyz, r1, c3.z + o.texcoord5 = temp1 * float4(0.5, 0.5, 0.5, 0.5); + // mul r1.xy, r0.z, c117.zwzw + temp1.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r1.xy, r0, c117, -r1 + temp1.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp1.xy; + // add oT2.xy, r1, c118 + o.texcoord2.xy = temp1.xy + Cloud.CurrentOffsetUV.xy; + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r1.y, r0, c113 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.z, r0, c114 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.w, r0, c115 + temp1.w = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r2.x, r1.x + temp2.x = 1.0f / temp1.x; + // mad oT3.xyz, r1.yzww, r2.x, c0.xxyw + o.texcoord3.xyz = temp1.yzw * temp2.xxx + float3(0, 0, -0.0015); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // + + return o; +} + +// VS_M_Array_Shader_2 Vertex_2_0 Has PRES False +struct VS_M_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 normal : NORMAL; + float4 normal1 : NORMAL1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_2_Output +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord5 : TEXCOORD5; + float4 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float4 position : POSITION; +}; + +VS_M_Array_Shader_2_Output VS_M_Array_Shader_2(VS_M_Array_Shader_2_Input i) +{ + VS_M_Array_Shader_2_Output o; + float4 temp0, temp1, temp2, temp3, temp4, temp6; + float2 addr0; + float3 temp5, temp7; + // def c0, 0, -0.0015, 0, 0 + // def c3, 1, -1, 0.5, 0 + // defi i0, 2, 0, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_normal v4 + // dcl_normal1 v5 + // dcl_texcoord v6 + // dcl_color v7 + // frc r0.xy, v0 + temp0.xy = frac(i.blendindices.xy); + // slt r0.zw, -r0.xyxy, r0.xyxy + temp0.zw = (-temp0.xy < temp0.xy) ? 1 : 0; + // add r0.xy, -r0, v0 + temp0.xy = -temp0.xy + i.blendindices.xy; + // slt r1.xy, v0, -v0 + temp1.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // mad r0.xy, r1, r0.zwzw, r0 + temp0.xy = temp1.xy * temp0.zw + temp0.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v7.w + temp0.x = temp0.x * i.color.w; + // mul oT1.w, r0.x, c1.x + o.texcoord1.w = temp0.x * OpacityOverride.x; + // mov oD1.w, c3.x + o.color1.w = float1(1); + // mov oT0.xy, v6 + o.texcoord = i.texcoord; + // mul r0, v2.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v2.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v2.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c3.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mul r1, v4.zxyy, c128[a0.x].yzxy + temp1 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v4.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp1; + // mul r2, v4.yzxz, c128[a0.x].zxyz + temp2 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c3.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // mul r2, v3.zxyy, c128[a0.y].yzxy + temp2 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v3.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp2; + // mul r3, v3.yzxz, c128[a0.y].zxyz + temp3 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // add r2.xyz, r2, c129[a0.y] + temp2.xyz = temp2.xyz + WorldBones[1 + addr0.y].xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r0.xyz, r0, v1.x, r2 + temp0.xyz = temp0.xyz * i.blendweight.xxx + temp2.xyz; + // mul r2, v5.zxyy, c128[a0.y].yzxy + temp2 = i.normal1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r2, c128[a0.y].wwwx, v5.xyzx, r2 + temp2 = WorldBones[0 + addr0.y].wwwx * i.normal1.xyzx + temp2; + // mul r3, v5.yzxz, c128[a0.y].zxyz + temp3 = i.normal1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r2, r2, c3.xxxy, -r3 + temp2 = temp2 * float4(1, 1, 1, -1) + -temp3; + // mul r3.xyz, r2.w, c128[a0.y] + temp3.xyz = temp2.www * WorldBones[0 + addr0.y].xyz; + // mad r3.xyz, c128[a0.y].w, r2, -r3 + temp3.xyz = WorldBones[0 + addr0.y].www * temp2.xyz + -temp3.xyz; + // mad r3.xyz, c128[a0.y].yzxw, r2.zxyw, r3 + temp3.xyz = WorldBones[0 + addr0.y].yzx * temp2.zxy + temp3.xyz; + // mad r2.xyz, c128[a0.y].zxyw, -r2.yzxw, r3 + temp2.xyz = WorldBones[0 + addr0.y].zxy * -temp2.yzx + temp3.xyz; + // mul r2.xyz, r2, v1.y + temp2.xyz = temp2.xyz * i.blendweight.yyy; + // mad r1.xyz, r1, v1.x, r2 + temp1.xyz = temp1.xyz * i.blendweight.xxx + temp2.xyz; + // add r2.xy, r0.yxzw, c16.wzzw + temp2.xy = temp0.yx + Shroud.ScaleUV_OffsetUV.wz; + // mul oT2.zw, r2.xyxy, c16.xyyx + o.texcoord2.zw = temp2.xy * Shroud.ScaleUV_OffsetUV.yx; + // mul r2.xy, r0.z, c117.zwzw + temp2.xy = temp0.zz * Cloud.WorldPositionMultiplier_XYZZ.zw; + // mad r2.xy, r0, c117, -r2 + temp2.xy = temp0.xy * Cloud.WorldPositionMultiplier_XYZZ.xy + -temp2.xy; + // add oT2.xy, r2, c118 + o.texcoord2.xy = temp2.xy + Cloud.CurrentOffsetUV.xy; + // add r2.xyz, -r0, c123 + temp2.xyz = -temp0.xyz + EyePosition.xyz; + // dp3 r1.w, r2, r2 + temp1.w = dot(temp2.xyz, temp2.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // mov r4.xyz, c0.x + temp4.xyz = float3(0, 0, 0); + // mov r5.xyz, c0.x + temp5.xyz = float3(0, 0, 0); + // mov r2.w, c3.x + temp2.w = float1(1); + // rep i0 + for (int it0 = 0; it0 < int1(2); ++it0) { + // add r4.w, r2.w, r2.w + temp4.w = temp2.w + temp2.w; + // mova a0.x, r4.w + addr0.x = temp4.w; + // mad r6.xyz, r2, r1.w, c6[a0.x] + temp6.xyz = temp2.xyz * temp1.www + DirectionalLight[0 + (addr0.x / 2)].Direction.xyz; + // nrm r7.xyz, r6 + temp7.xyz = normalize(temp6.xyz).xyz; + // dp3 r3.y, r1, r7 + temp3.y = dot(temp1.xyz, temp7.xyz); + // dp3 r3.x, r1, c6[a0.x] + temp3.x = dot(temp1.xyz, DirectionalLight[0 + (addr0.x / 2)].Direction.xyz); + // lit r6, r3 + temp6 = lit(temp3.x, temp3.y, temp3.w); + // mad r5.xyz, c5[a0.x], r6.z, r5 + temp5.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.zzz + temp5.xyz; + // mad r4.xyz, c5[a0.x], r6.y, r4 + temp4.xyz = DirectionalLight[0 + (addr0.x / 2)].Color.xyz * temp6.yyy + temp4.xyz; + // add r2.w, r2.w, c3.x + temp2.w = temp2.w + float1(1); + // endrep + } + // mul r3.xyz, r5, c13 + temp3.xyz = temp5.xyz * ColorSpecular.xyz; + // mul oD1.xyz, r3, c3.z + o.color1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // mov r3.xyz, c4 + temp3.xyz = AmbientLightColor.xyz; + // mov r5.xyz, c11 + temp5.xyz = ColorAmbient.xyz; + // mad r3.xyz, r3, r5, c15 + temp3.xyz = temp3.xyz * temp5.xyz + ColorEmissive.xyz; + // mad r3.xyz, r4, c12, r3 + temp3.xyz = temp4.xyz * ColorDiffuse.xyz + temp3.xyz; + // mul r4.xyz, v7, c2 + temp4.xyz = i.color.xyz * TintColor.xyz; + // mul r3.xyz, r3, r4 + temp3.xyz = temp3.xyz * temp4.xyz; + // mul oT1.xyz, r3, c3.z + o.texcoord1.xyz = temp3.xyz * float3(0.5, 0.5, 0.5); + // dp3 r3.x, r1, c6 + temp3.x = dot(temp1.xyz, DirectionalLight[0].Direction.xyz); + // mad r2.xyz, r2, r1.w, c6 + temp2.xyz = temp2.xyz * temp1.www + DirectionalLight[0].Direction.xyz; + // nrm r5.xyz, r2 + temp5.xyz = normalize(temp2.xyz).xyz; + // dp3 r3.y, r1, r5 + temp3.y = dot(temp1.xyz, temp5.xyz); + // mov r3.zw, c14.x + temp3.zw = Shininess.x; + // lit r1, r3 + temp1 = lit(temp3.x, temp3.y, temp3.w); + // mul r1.xzw, r1.z, c5.xyyz + temp1.xzw = temp1.zzz * DirectionalLight[0].Color.xyz; + // mul r1.xzw, r1, c13.xyyz + temp1.xzw = temp1.xzw * ColorSpecular.xyz; + // mul oT5.xyz, r1.xzww, c3.z + o.texcoord5 = temp1.xzww * float4(0.5, 0.5, 0.5, 0.5); + // mov r0.w, c3.x + temp0.w = float1(1); + // dp4 r1.x, r0, c116 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // dp4 r2.x, r0, c113 + temp2.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r2.y, r0, c114 + temp2.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r2.z, r0, c115 + temp2.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // rcp r1.z, r1.x + temp1.z = 1.0f / temp1.x; + // mad oT3.xyz, r2, r1.z, c0.xxyw + o.texcoord3.xyz = temp2.xyz * temp1.zzz + float3(0, 0, -0.0015); + // mul r1.yzw, r1.y, c5.xxyz + temp1.yzw = temp1.yyy * DirectionalLight[0].Color.xyz; + // mul r1.yzw, r1, c12.xxyz + temp1.yzw = temp1.yzw * ColorDiffuse.xyz; + // mul r1.yzw, r4.xxyz, r1 + temp1.yzw = temp4.xyz * temp1.yzw; + // mul oT4.xyz, r1.yzww, c3.z + o.texcoord4 = temp1.yzww * float4(0.5, 0.5, 0.5, 0.5); + // mov oT3.w, r1.x + o.texcoord3.w = temp1.x; + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // + + return o; +} + +VertexShader VS_M_Array[3] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 67 + compile vs_2_0 VS_M_Array_Shader_1(), // 68 + compile vs_2_0 VS_M_Array_Shader_2(), // 69 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, t5 + temp3.xyz = i.texcoord5.xyz; + // mad r0.xyz, r3, r0, v1 + temp0.xyz = temp3.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2, -1, 1, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // mad r1.xyz, r0, c0.x, c0.y + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.z + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_2 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_2_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_2(PS_M_Array_Shader_2_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t2, s2 + temp0 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r1, t0, s0 + temp1 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mov r2.xyz, t1 + temp2.xyz = i.texcoord1.xyz; + // mad r2.xyz, t4, r0, r2 + temp2.xyz = i.texcoord4.xyz * temp0.xyz + temp2.xyz; + // mov r3.xyz, v1 + temp3.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r3 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp3.xyz; + // add r0.xyz, r2, r0 + temp0.xyz = temp2.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r1, r0 + temp0 = temp1 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mov r2.xy, t2.wzyx + temp2.xy = i.texcoord2.wz; + // texld r2, r2, s1 + temp2 = tex2D(ShroudTextureSampler, temp2.xy); + // mul r0.xyz, r1, r2 + temp0.xyz = temp1.xyz * temp2.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_3 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_3_Input +{ + float4 texcoord1 : TEXCOORD1; + float3 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_3(PS_M_Array_Shader_3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1.xyz + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, t5 + temp2.xyz = i.texcoord5.xyz; + // mad r0.xyz, r2, r0, v1 + temp0.xyz = temp2.xyz * temp0.xyz + i.color1.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_4 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_4_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_4(PS_M_Array_Shader_4_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, -2 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // mad r1.xyz, r0, -c0.w, -c0.x + temp1.xyz = temp0.xyz * float3(2, 2, 2) + float3(-1, -1, -1); + // mad r1.xyz, v1.w, r1, c0.x + temp1.xyz = i.color1.www * temp1.xyz + float3(1, 1, 1); + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_5 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_5_Input +{ + float4 texcoord1 : TEXCOORD1; + float4 color1 : COLOR1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float3 texcoord4 : TEXCOORD4; + float3 texcoord5 : TEXCOORD5; +}; + +float4 PS_M_Array_Shader_5(PS_M_Array_Shader_5_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5, temp6; + // def c0, 1, 0, 0.25, 0 + // dcl t1 + // dcl v1 + // dcl t0.xy + // dcl t2 + // dcl t3.xyz + // dcl t4.xyz + // dcl t5.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // dcl_2d s3 + // add r0.xy, t3, c11.zxyw + temp0.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t3, c11.yzxw + temp1.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t3, c11.wzyx + temp2.xy = i.texcoord3.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // mov r3.xy, t2.wzyx + temp3.xy = i.texcoord2.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r4, t3, s0 + temp4 = tex2D(ShadowMapSampler, i.texcoord3.xy); + // texld r5, t2, s3 + temp5 = tex2D(CloudTextureSampler, i.texcoord2.xy); + // texld r6, t0, s1 + temp6 = tex2D(Texture_0Sampler, i.texcoord.xy); + // texld r3, r3, s2 + temp3 = tex2D(ShroudTextureSampler, temp3.xy); + // mov r4.y, r0.x + temp4.y = temp0.x; + // mov r4.z, r1.x + temp4.z = temp1.x; + // mov r4.w, r2.x + temp4.w = temp2.x; + // add r0, r4, -t3.z + temp0 = temp4 + -i.texcoord3.z; + // cmp r0, r0, c0.x, c0.y + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r3.w, c0.x, r0 + temp3.w = dot(float4(1, 1, 1, 1), temp0); + // mul r3.w, r3.w, c0.z + temp3.w = temp3.w * float1(0.25); + // mul r0.xyz, r5, r3.w + temp0.xyz = temp5.xyz * temp3.www; + // mov r1.xyz, t1 + temp1.xyz = i.texcoord1.xyz; + // mad r1.xyz, t4, r0, r1 + temp1.xyz = i.texcoord4.xyz * temp0.xyz + temp1.xyz; + // mov r2.xyz, v1 + temp2.xyz = i.color1.xyz; + // mad r0.xyz, t5, r0, r2 + temp0.xyz = i.texcoord5.xyz * temp0.xyz + temp2.xyz; + // add r0.xyz, r1, r0 + temp0.xyz = temp1.xyz + temp0.xyz; + // mov r0.w, t1.w + temp0.w = i.texcoord1.w; + // mul r0, r6, r0 + temp0 = temp6 * temp0; + // add r1.xyz, r0, r0 + temp1.xyz = temp0.xyz + temp0.xyz; + // mul r1.xyz, r1, v1.w + temp1.xyz = temp1.xyz * i.color1.www; + // mul r0.xyz, r3, r1 + temp0.xyz = temp3.xyz * temp1.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[6] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 70 + compile ps_2_0 PS_M_Array_Shader_1(), // 71 + compile ps_2_0 PS_M_Array_Shader_2(), // 72 + compile ps_2_0 PS_M_Array_Shader_3(), // 73 + compile ps_2_0 PS_M_Array_Shader_4(), // 74 + compile ps_2_0 PS_M_Array_Shader_5(), // 75 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mul oD0.x, v2.w, c1.x + o.color = i.color.w * OpacityOverride.x; + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mov r1.w, c0.x + temp1.w = float1(1); + // dp4 r0.w, r1, c122 + temp0.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r0.w + temp2.x = 1.0f / temp0.w; + // dp4 r0.z, r1, c121 + temp0.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r0.z + o.texcoord1 = temp2.x * temp0.z; + // dp4 r0.x, r1, c119 + temp0.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 r0.y, r1, c120 + temp0.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // add r1, -r0, c0.xxxy + temp1 = -temp0 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r1, r0 + o.position = expr11.x * temp1 + temp0; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 blendindices : BLENDINDICES; + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0, temp2; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_position v1 + // dcl_texcoord v2 + // dcl_color v3 + // slt r0.x, v0.x, -v0.x + temp0.x = (i.blendindices.x < -i.blendindices.x) ? 1 : 0; + // frc r0.y, v0.x + temp0.y = frac(i.blendindices.x); + // add r0.z, -r0.y, v0.x + temp0.z = -temp0.y + i.blendindices.x; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // add r0.x, r0.x, r0.x + temp0.x = temp0.x + temp0.x; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0.x, v3.w, c129[a0.x].w + temp0.x = i.color.w * WorldBones[1 + addr0.x].w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // mul oT1.x, r2.x, r1.z + o.texcoord1 = temp2.x * temp1.z; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_2 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_2_Input +{ + float4 blendindices : BLENDINDICES; + float4 blendweight : BLENDWEIGHT; + float4 position : POSITION; + float4 position1 : POSITION1; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_2_Output +{ + float color : COLOR; + float texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_2_Output VSCreateShadowMap_Array_Shader_2(VSCreateShadowMap_Array_Shader_2_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + { + float4 temp0; + float4 temp1; + // Expression_2_1 + // add r0.x, c0.x, (-2) + temp0.x = BlendMode.x + (-2); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge c11.x, r0.x, r1.x + expr11.x = temp0.x >= temp1.x; + } + + VSCreateShadowMap_Array_Shader_2_Output o; + float4 temp0, temp1, temp2; + float2 addr0; + // def c0, 1, -1, 0, 0 + // dcl_blendindices v0 + // dcl_blendweight v1 + // dcl_position v2 + // dcl_position1 v3 + // dcl_texcoord v4 + // dcl_color v5 + // slt r0.xy, v0, -v0 + temp0.xy = (i.blendindices.xy < -i.blendindices.xy) ? 1 : 0; + // frc r0.zw, v0.xyxy + temp0.zw = frac(i.blendindices.xy); + // add r1.xy, -r0.zwzw, v0 + temp1.xy = -temp0.zw + i.blendindices.xy; + // slt r0.zw, -r0, r0 + temp0.zw = (-temp0.zw < temp0.zw) ? 1 : 0; + // mad r0.xy, r0, r0.zwzw, r1 + temp0.xy = temp0.xy * temp0.zw + temp1.xy; + // add r0.xy, r0, r0 + temp0.xy = temp0.xy + temp0.xy; + // mova a0.xy, r0 + addr0.xy = temp0.xy; + // mul r0.x, v1.y, c129[a0.y].w + temp0.x = i.blendweight.y * WorldBones[1 + addr0.y].w; + // mad r0.x, c129[a0.x].w, v1.x, r0.x + temp0.x = WorldBones[1 + addr0.x].w * i.blendweight.x + temp0.x; + // mul r0.x, r0.x, v5.w + temp0.x = temp0.x * i.color.w; + // mul oD0.x, r0.x, c1.x + o.color = temp0.x * OpacityOverride.x; + // mul r0, v3.zxyy, c128[a0.y].yzxy + temp0 = i.position1.zxyy * WorldBones[0 + addr0.y].yzxy; + // mad r0, c128[a0.y].wwwx, v3.xyzx, r0 + temp0 = WorldBones[0 + addr0.y].wwwx * i.position1.xyzx + temp0; + // mul r1, v3.yzxz, c128[a0.y].zxyz + temp1 = i.position1.yzxz * WorldBones[0 + addr0.y].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.y] + temp1.xyz = temp0.www * WorldBones[0 + addr0.y].xyz; + // mad r1.xyz, c128[a0.y].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.y].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.y].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.y].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.y].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.y].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.y] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.y].xyz; + // mul r0.xyz, r0, v1.y + temp0.xyz = temp0.xyz * i.blendweight.yyy; + // mul r1, v2.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v2.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v2.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c0.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // mad r0.xyz, r1, v1.x, r0 + temp0.xyz = temp1.xyz * i.blendweight.xxx + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 r1.z, r0, c121 + temp1.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 r1.w, r0, c122 + temp1.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // rcp r2.x, r1.w + temp2.x = 1.0f / temp1.w; + // mul oT1.x, r1.z, r2.x + o.texcoord1 = temp1.z * temp2.x; + // dp4 r1.x, r0, c119 + temp1.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 r1.y, r0, c120 + temp1.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // add r0, -r1, c0.xxxz + temp0 = -temp1 + float4(1, 1, 1, 0); + // mad oPos, c11.x, r0, r1 + o.position = expr11.x * temp0 + temp1; + // mov oT0.xy, v4 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[3] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 82 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 83 + compile vs_2_0 VSCreateShadowMap_Array_Shader_2(), // 84 +}; +// PSCreateShadowMap_Array_Shader_0 Pixel_2_0 Has PRES False +float4 PSCreateShadowMap_Array_Shader_0(float texcoord1 : TEXCOORD1) : COLOR +{ + float4 out_color; + float4 temp0; + // dcl t1.x + // mov r0, t1.x + temp0 = texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PSCreateShadowMap_Array_Shader_1 Pixel_2_0 Has PRES False +struct PSCreateShadowMap_Array_Shader_1_Input +{ + float color : COLOR; + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 PSCreateShadowMap_Array_Shader_1(PSCreateShadowMap_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl v0.x + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(Texture_0Sampler, i.texcoord.xy); + // mad r0, v0.x, r0.w, c0.x + temp0 = i.color.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PSCreateShadowMap_Array[2] = { + compile ps_2_0 PSCreateShadowMap_Array_Shader_0(), // 85 + compile ps_2_0 PSCreateShadowMap_Array_Shader_1(), // 86 +}; +// _CreateShadowMap_Expression24 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression24() +{ + float4 temp0; + float4 temp1; + float4 temp2; + float1 expr0; + // add r0.x, c1.x, (-1) + temp0.x = BlendMode.x + (-1); + // mul r1.x, r0.x, r0.x + temp1.x = temp0.x * temp0.x; + // neg r0.x, r1.x + temp0.x = -temp1.x; + // ge r2.x, r0.x, r1.x + temp2.x = temp0.x >= temp1.x; + // add r0.x, r2.x, c0.x + temp0.x = temp2.x + AlphaTestEnable.x; + // neg r1.x, r0.x + temp1.x = -temp0.x; + // lt c0.x, r1.x, r0.x + expr0.x = temp1.x < temp0.x; + return expr0; +} + +// _CreateShadowMap_Expression25 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression25() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_L_Expression26 Expression_2_0 Has PRES False +float _Default_L_Expression26() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_L_Expression27 Expression_2_0 Has PRES False +float _Default_L_Expression27() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// _Default_M_Expression28 Expression_2_0 Has PRES False +float _Default_M_Expression28() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// _Default_M_Expression29 Expression_2_0 Has PRES False +float _Default_M_Expression29() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +// Default_Expression30 Expression_2_0 Has PRES False +float Default_Expression30() +{ + float1 expr0; + // mul c0.x, c0.x, (3) + expr0.x = HasShadow.x * (3); + return expr0; +} + +// Default_Expression31 Expression_2_0 Has PRES False +float Default_Expression31() +{ + float1 expr0; + // min c0.x, c0.x, (2) + expr0.x = min(NumJointsPerVertex.x, (2)); + return expr0; +} + +technique Default +{ + pass P0 + { + VertexShader = VS_Array[Default_Expression31()]; // 65 + PixelShader = PS_Array[Default_Expression30()]; // 66 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_M +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_M_Expression29()]; // 77 + PixelShader = PS_M_Array[_Default_M_Expression28()]; // 78 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _Default_L +{ + pass P0 + { + VertexShader = VS_M_Array[_Default_L_Expression27()]; // 80 + PixelShader = PS_M_Array[_Default_L_Expression26()]; // 81 + ZEnable = 1; + ZFunc = 4; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass P0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression25()]; // 88 + PixelShader = PSCreateShadowMap_Array[_CreateShadowMap_Expression24()]; // 89 + ZEnable = 1; + ZFunc = 4; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/treesway.fx b/treesway.fx new file mode 100644 index 0000000..a12ae48 --- /dev/null +++ b/treesway.fx @@ -0,0 +1,1692 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor : register(vs_2_0, c4) = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(vs_2_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +int NumPointLights ; +struct +{ + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[3] : register(vs_2_0, c89) ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +column_major float4x4 ShadowMapWorldToShadow : register(vs_2_0, c113) ; +float OpacityOverride : register(vs_2_0, c1) : register(ps_2_0, c1) = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +column_major float4x4 ViewProjection : register(vs_2_0, c119) ; +float4 WorldBones[128] : register(vs_2_0, c128) ; +bool HasShadow ; +texture ShadowMap ; // 6 +sampler2D ShadowMapSampler = +sampler_state +{ + Texture = ; // 9 + MinFilter = 1; + MagFilter = 1; + MipFilter = 0; + AddressU = 3; + AddressV = 3; +}; +float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize : register(ps_2_0, c11) ; +int _SasGlobal : SasGlobal ; +int NumJointsPerVertex ; +column_major float4x3 World : World : register(vs_2_0, c124); +texture DiffuseTexture ; // 18 +sampler2D DiffuseTextureSampler = +sampler_state +{ + Texture = ; // 20 + MinFilter = 3; + MagFilter = 2; + MipFilter = 2; + MaxAnisotropy = 8; + AddressU = 1; + AddressV = 1; +}; +float3 AmbientColor : register(vs_2_0, c15) = { 0.4, 0.4, 0.4 }; +float4 DiffuseColor : register(vs_2_0, c16) = { 1, 1, 1, 1 }; +bool SwayEnable : register(vs_2_0, c17) ; +float Amp1 : register(vs_2_0, c18) = { 1 }; +float Freq1 : register(vs_2_0, c19) = { 10 }; +float Phase1 = { 1 }; +struct +{ + float4 ScaleUV_OffsetUV; +} Shroud : register(vs_2_0, c20) = { 1, 1, 0, 0 }; +texture ShroudTexture ; // 36 +sampler2D ShroudTextureSampler = +sampler_state +{ + Texture = ; // 39 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +float Time : Time; +// VS_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_0_Output +{ + float3 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float4 position : POSITION; + float2 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float color1 : COLOR1; +}; + +VS_Array_Shader_0_Output VS_Array_Shader_0(VS_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + // Expression_2_1 + // mul c11.x, c1.x, c2.x + expr11.x = Phase1.x * Time.x; + // lt c12.x, (0), c0.x + expr12.x = (0) < NumPointLights.x; + // lt c13.x, (1), c0.x + expr13.x = (1) < NumPointLights.x; + // lt c14.x, (2), c0.x + expr14.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_0_Output o; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 1, 0, 0.1591549, 0.25 + // def c2, 6.283185, -3.141593, -2.523985E-07, 2.47609E-05 + // def c3, -0.00138884, 0.04166664, -0.5, 0.5 + // def c21, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c6 + temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c5 + temp1.xyz = temp0.www * DirectionalLight[0].Color.xyz; + // mul oT3.xyz, r1, c16 + o.texcoord3 = temp1 * DiffuseColor; + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c9 + temp1.xyz = temp0.www * DirectionalLight[2].Color.xyz; + // dp3 r0.w, r0, c8 + temp0.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mad r1.xyz, c7, r0.w, r1 + temp1.xyz = DirectionalLight[1].Color.xyz * temp0.www + temp1.xyz; + // add r0.w, -c91.x, c91.y + temp0.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // mad r2, v0.xyzx, c0.xxxy, c0.yyyx + temp2 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r3.x, r2, c124 + temp3.x = dot(temp2, (World._m00_m10_m20_m30)); + // frc r1.w, r3.x + temp1.w = frac(temp3.x); + // mov r4.x, c19.x + temp4.x = Freq1.x; + // mad r1.w, r1.w, r4.x, c11.x + temp1.w = temp1.w * temp4.x + expr11.x; + // mad r1.w, r1.w, c0.z, c0.w + temp1.w = temp1.w * float1(0.15915494) + float1(0.25); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c2.x, c2.y + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mad r3.w, r1.w, c2.z, c2.w + temp3.w = temp1.w * float1(-2.523985E-07) + float1(2.47609E-05); + // mad r3.w, r1.w, r3.w, c3.x + temp3.w = temp1.w * temp3.w + float1(-0.0013888397); + // mad r3.w, r1.w, r3.w, c3.y + temp3.w = temp1.w * temp3.w + float1(0.04166664); + // mad r3.w, r1.w, r3.w, c3.z + temp3.w = temp1.w * temp3.w + float1(-0.5); + // mad r1.w, r1.w, r3.w, c0.x + temp1.w = temp1.w * temp3.w + float1(1); + // mul r1.w, r1.w, c18.x + temp1.w = temp1.w * Amp1.x; + // mul r1.w, r1.w, v3.w + temp1.w = temp1.w * i.color.w; + // dp4 r3.y, r2, c125 + temp3.y = dot(temp2, (World._m01_m11_m21_m31)); + // dp4 r3.z, r2, c126 + temp3.z = dot(temp2, (World._m02_m12_m22_m32)); + // mad r2.xyz, c17.x, r1.w, r3 + temp2.xyz = SwayEnable.xxx * temp1.www + temp3.xyz; + // add r3.xyz, -r2, c90 + temp3.xyz = -temp2.xyz + PointLight[0].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r3.w, r1.w + temp3.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r3.w, -c91.x + temp1.w = temp3.w + -PointLight[0].Range_Inner_Outer.x; + // mad r0.w, r1.w, -r0.w, c0.x + temp0.w = temp1.w * -temp0.w + float1(1); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // min r0.w, r0.w, c0.x + temp0.w = min(temp0.w, float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r4.xyz, r0.w, c89 + temp4.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r4, r0.w + temp3.xyz = temp4.xyz * temp0.www; + // mad r1.xyz, c12.x, r3, r1 + temp1.xyz = expr12.xxx * temp3.xyz + temp1.xyz; + // add r0.w, -c94.x, c94.y + temp0.w = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // add r3.xyz, -r2, c93 + temp3.xyz = -temp2.xyz + PointLight[1].Position.xyz; + // dp3 r1.w, r3, r3 + temp1.w = dot(temp3.xyz, temp3.xyz); + // rsq r1.w, r1.w + temp1.w = 1 / sqrt(temp1.w); + // rcp r3.w, r1.w + temp3.w = 1.0f / temp1.w; + // mul r3.xyz, r3, r1.w + temp3.xyz = temp3.xyz * temp1.www; + // add r1.w, r3.w, -c94.x + temp1.w = temp3.w + -PointLight[1].Range_Inner_Outer.x; + // mad r0.w, r1.w, -r0.w, c0.x + temp0.w = temp1.w * -temp0.w + float1(1); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // min r0.w, r0.w, c0.x + temp0.w = min(temp0.w, float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r4.xyz, r0.w, c92 + temp4.xyz = temp0.www * PointLight[1].Color.xyz; + // dp3 r0.w, r0, r3 + temp0.w = dot(temp0.xyz, temp3.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r4, r0.w + temp3.xyz = temp4.xyz * temp0.www; + // mad r1.xyz, c13.x, r3, r1 + temp1.xyz = expr13.xxx * temp3.xyz + temp1.xyz; + // add r3.xyz, -r2, c96 + temp3.xyz = -temp2.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // add r0.y, -c97.x, c97.y + temp0.y = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r0.y, r0.y + temp0.y = 1.0f / temp0.y; + // add r0.z, r0.w, -c97.x + temp0.z = temp0.w + -PointLight[2].Range_Inner_Outer.x; + // mad r0.y, r0.z, -r0.y, c0.x + temp0.y = temp0.z * -temp0.y + float1(1); + // max r0.y, r0.y, c0.y + temp0.y = max(temp0.y, float1(0)); + // min r0.y, r0.y, c0.x + temp0.y = min(temp0.y, float1(1)); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // mul r0.yzw, r0.y, c95.xxyz + temp0.yzw = temp0.yyy * PointLight[2].Color.xyz; + // mul r0.xyz, r0.x, r0.yzww + temp0.xyz = temp0.xxx * temp0.yzw; + // mad r0.xyz, c14.x, r0, r1 + temp0.xyz = expr14.xxx * temp0.xyz + temp1.xyz; + // mul r0.xyz, r0, c16 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c15, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul oD0, r0, c3.w + o.color = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mov r2.w, c0.x + temp2.w = float1(1); + // dp4 oPos.x, r2, c119 + o.position.x = dot(temp2, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r2, c120 + o.position.y = dot(temp2, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r2, c121 + o.position.z = dot(temp2, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r2, c122 + o.position.w = dot(temp2, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r2, c20.zwzw + temp0.xy = temp2.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c20 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // dp4 r0.x, r2, c113 + temp0.x = dot(temp2, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r2, c114 + temp0.y = dot(temp2, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r2, c115 + temp0.z = dot(temp2, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r2, c116 + temp0.w = dot(temp2, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov oT2.w, r0.w + o.texcoord2.w = temp0.w; + // mad oT2.xyz, r0, r1.x, c21.xxyw + o.texcoord2.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_Array_Shader_1_Output +{ + float3 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float4 position : POSITION; + float2 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float color1 : COLOR1; +}; + +VS_Array_Shader_1_Output VS_Array_Shader_1(VS_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 11 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 4 + Unknown3: 0 + Unknown4: 0 + Unknown5: 11 + Unknown6: 4 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr11; + float4 expr12; + float4 expr13; + float4 expr14; + { + // Expression_2_1 + // mul c11.x, c1.x, c2.x + expr11.x = Phase1.x * Time.x; + // lt c12.x, (0), c0.x + expr12.x = (0) < NumPointLights.x; + // lt c13.x, (1), c0.x + expr13.x = (1) < NumPointLights.x; + // lt c14.x, (2), c0.x + expr14.x = (2) < NumPointLights.x; + } + + VS_Array_Shader_1_Output o; + float4 temp0, temp1, temp2; + float addr0; + float3 temp3; + // def c0, -0.00138884, 0.04166664, -0.5, 0 + // def c2, 1, -1, 0.1591549, 0.25 + // def c3, 6.283185, -3.141593, -2.523985E-07, 2.47609E-05 + // def c21, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c2.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // dp3 r0.w, r0, c6 + temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r0.w, r0.w, c0.w + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c5 + temp1.xyz = temp0.www * DirectionalLight[0].Color.xyz; + // mul oT3.xyz, r1, c16 + o.texcoord3 = temp1 * DiffuseColor; + // mul r1, v0.zxyy, c128[a0.x].yzxy + temp1 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r1, c128[a0.x].wwwx, v0.xyzx, r1 + temp1 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp1; + // mul r2, v0.yzxz, c128[a0.x].zxyz + temp2 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r1, r1, c2.xxxy, -r2 + temp1 = temp1 * float4(1, 1, 1, -1) + -temp2; + // mul r2.xyz, r1.w, c128[a0.x] + temp2.xyz = temp1.www * WorldBones[0 + addr0.x].xyz; + // mad r2.xyz, c128[a0.x].w, r1, -r2 + temp2.xyz = WorldBones[0 + addr0.x].www * temp1.xyz + -temp2.xyz; + // mad r2.xyz, c128[a0.x].yzxw, r1.zxyw, r2 + temp2.xyz = WorldBones[0 + addr0.x].yzx * temp1.zxy + temp2.xyz; + // mad r1.xyz, c128[a0.x].zxyw, -r1.yzxw, r2 + temp1.xyz = WorldBones[0 + addr0.x].zxy * -temp1.yzx + temp2.xyz; + // add r1.xyz, r1, c129[a0.x] + temp1.xyz = temp1.xyz + WorldBones[1 + addr0.x].xyz; + // frc r0.w, r1.x + temp0.w = frac(temp1.x); + // mov r2.x, c19.x + temp2.x = Freq1.x; + // mad r0.w, r0.w, r2.x, c11.x + temp0.w = temp0.w * temp2.x + expr11.x; + // mad r0.w, r0.w, c2.z, c2.w + temp0.w = temp0.w * float1(0.15915494) + float1(0.25); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mad r0.w, r0.w, c3.x, c3.y + temp0.w = temp0.w * float1(6.2831855) + float1(-3.1415927); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mad r1.w, r0.w, c3.z, c3.w + temp1.w = temp0.w * float1(-2.523985E-07) + float1(2.47609E-05); + // mad r1.w, r0.w, r1.w, c0.x + temp1.w = temp0.w * temp1.w + float1(-0.0013888397); + // mad r1.w, r0.w, r1.w, c0.y + temp1.w = temp0.w * temp1.w + float1(0.04166664); + // mad r1.w, r0.w, r1.w, c0.z + temp1.w = temp0.w * temp1.w + float1(-0.5); + // mad r0.w, r0.w, r1.w, c2.x + temp0.w = temp0.w * temp1.w + float1(1); + // mul r0.w, r0.w, c18.x + temp0.w = temp0.w * Amp1.x; + // mul r0.w, r0.w, v4.w + temp0.w = temp0.w * i.color.w; + // mad r1.xyz, c17.x, r0.w, r1 + temp1.xyz = SwayEnable.xxx * temp0.www + temp1.xyz; + // add r2.xyz, -r1, c90 + temp2.xyz = -temp1.xyz + PointLight[0].Position.xyz; + // dp3 r0.w, r2, r2 + temp0.w = dot(temp2.xyz, temp2.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // rcp r2.w, r0.w + temp2.w = 1.0f / temp0.w; + // mul r2.xyz, r2, r0.w + temp2.xyz = temp2.xyz * temp0.www; + // add r0.w, r2.w, -c91.x + temp0.w = temp2.w + -PointLight[0].Range_Inner_Outer.x; + // add r2.w, -c91.x, c91.y + temp2.w = -PointLight[0].Range_Inner_Outer.x + PointLight[0].Range_Inner_Outer.y; + // rcp r2.w, r2.w + temp2.w = 1.0f / temp2.w; + // mad r0.w, r0.w, -r2.w, c2.x + temp0.w = temp0.w * -temp2.w + float1(1); + // max r0.w, r0.w, c0.w + temp0.w = max(temp0.w, float1(0)); + // min r0.w, r0.w, c2.x + temp0.w = min(temp0.w, float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r3.xyz, r0.w, c89 + temp3.xyz = temp0.www * PointLight[0].Color.xyz; + // dp3 r0.w, r0, r2 + temp0.w = dot(temp0.xyz, temp2.xyz); + // max r0.w, r0.w, c0.w + temp0.w = max(temp0.w, float1(0)); + // mul r2.xyz, r3, r0.w + temp2.xyz = temp3.xyz * temp0.www; + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // max r0.w, r0.w, c0.w + temp0.w = max(temp0.w, float1(0)); + // mul r3.xyz, r0.w, c9 + temp3.xyz = temp0.www * DirectionalLight[2].Color.xyz; + // dp3 r0.w, r0, c8 + temp0.w = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.w, r0.w, c0.w + temp0.w = max(temp0.w, float1(0)); + // mad r3.xyz, c7, r0.w, r3 + temp3.xyz = DirectionalLight[1].Color.xyz * temp0.www + temp3.xyz; + // mad r2.xyz, c12.x, r2, r3 + temp2.xyz = expr12.xxx * temp2.xyz + temp3.xyz; + // add r3.xyz, -r1, c93 + temp3.xyz = -temp1.xyz + PointLight[1].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // dp3 r2.w, r0, r3 + temp2.w = dot(temp0.xyz, temp3.xyz); + // max r2.w, r2.w, c0.w + temp2.w = max(temp2.w, float1(0)); + // add r0.w, r0.w, -c94.x + temp0.w = temp0.w + -PointLight[1].Range_Inner_Outer.x; + // add r3.x, -c94.x, c94.y + temp3.x = -PointLight[1].Range_Inner_Outer.x + PointLight[1].Range_Inner_Outer.y; + // rcp r3.x, r3.x + temp3.x = 1.0f / temp3.x; + // mad r0.w, r0.w, -r3.x, c2.x + temp0.w = temp0.w * -temp3.x + float1(1); + // max r0.w, r0.w, c0.w + temp0.w = max(temp0.w, float1(0)); + // min r0.w, r0.w, c2.x + temp0.w = min(temp0.w, float1(1)); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mul r3.xyz, r0.w, c92 + temp3.xyz = temp0.www * PointLight[1].Color.xyz; + // mul r3.xyz, r2.w, r3 + temp3.xyz = temp2.www * temp3.xyz; + // mad r2.xyz, c13.x, r3, r2 + temp2.xyz = expr13.xxx * temp3.xyz + temp2.xyz; + // add r3.xyz, -r1, c96 + temp3.xyz = -temp1.xyz + PointLight[2].Position.xyz; + // dp3 r0.w, r3, r3 + temp0.w = dot(temp3.xyz, temp3.xyz); + // rsq r0.w, r0.w + temp0.w = 1 / sqrt(temp0.w); + // mul r3.xyz, r3, r0.w + temp3.xyz = temp3.xyz * temp0.www; + // rcp r0.w, r0.w + temp0.w = 1.0f / temp0.w; + // dp3 r0.x, r0, r3 + temp0.x = dot(temp0.xyz, temp3.xyz); + // max r0.x, r0.x, c0.w + temp0.x = max(temp0.x, float1(0)); + // add r0.y, r0.w, -c97.x + temp0.y = temp0.w + -PointLight[2].Range_Inner_Outer.x; + // add r0.z, -c97.x, c97.y + temp0.z = -PointLight[2].Range_Inner_Outer.x + PointLight[2].Range_Inner_Outer.y; + // rcp r0.z, r0.z + temp0.z = 1.0f / temp0.z; + // mad r0.y, r0.y, -r0.z, c2.x + temp0.y = temp0.y * -temp0.z + float1(1); + // max r0.y, r0.y, c0.w + temp0.y = max(temp0.y, float1(0)); + // min r0.y, r0.y, c2.x + temp0.y = min(temp0.y, float1(1)); + // mul r0.y, r0.y, r0.y + temp0.y = temp0.y * temp0.y; + // mul r0.yzw, r0.y, c95.xxyz + temp0.yzw = temp0.yyy * PointLight[2].Color.xyz; + // mul r0.xyz, r0.x, r0.yzww + temp0.xyz = temp0.xxx * temp0.yzw; + // mad r0.xyz, c14.x, r0, r2 + temp0.xyz = expr14.xxx * temp0.xyz + temp2.xyz; + // mul r0.xyz, r0, c16 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r2.xyz, c4 + temp2.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r2, c15, r0 + temp0.xyz = temp2.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul oD0, r0, -c0.z + o.color = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mov r1.w, c2.x + temp1.w = float1(1); + // dp4 oPos.x, r1, c119 + o.position.x = dot(temp1, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r1, c120 + o.position.y = dot(temp1, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r1, c121 + o.position.z = dot(temp1, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r1, c122 + o.position.w = dot(temp1, (ViewProjection._m03_m13_m23_m33)); + // add r0.xy, r1, c20.zwzw + temp0.xy = temp1.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r0, c20 + o.texcoord1 = temp0 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // dp4 r0.x, r1, c113 + temp0.x = dot(temp1, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r0.y, r1, c114 + temp0.y = dot(temp1, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r0.z, r1, c115 + temp0.z = dot(temp1, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.w, r1, c116 + temp0.w = dot(temp1, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r1.x, r0.w + temp1.x = 1.0f / temp0.w; + // mov oT2.w, r0.w + o.texcoord2.w = temp0.w; + // mad oT2.xyz, r0, r1.x, c21.xxyw + o.texcoord2.xyz = temp0.xyz * temp1.xxx + float3(0, 0, -0.0015); + // mov oD1.x, c2.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +VertexShader VS_Array[2] = { + compile vs_2_0 VS_Array_Shader_0(), // 43 + compile vs_2_0 VS_Array_Shader_1(), // 44 +}; +// PS_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 color : COLOR; +}; + +float4 PS_Array_Shader_0(PS_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3; + float3 temp4; + // def c0, 2.2, 2, 0, 0 + // dcl t0.xy + // dcl t1.xy + // dcl t3.xyz + // dcl v0 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mov r2.xyz, c0.y + temp2.xyz = float3(2, 2, 2); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r2.xyz, r3, r2, t3 + temp2.xyz = temp3.xyz * temp2.xyz + i.texcoord3.xyz; + // mov r3.w, c0.y + temp3.w = float1(2); + // log r4.x, r0.x + temp4.x = log2(temp0.x); + // log r4.y, r0.y + temp4.y = log2(temp0.y); + // log r4.z, r0.z + temp4.z = log2(temp0.z); + // mul r0.xyz, r4, c0.x + temp0.xyz = temp4.xyz * float3(2.2, 2.2, 2.2); + // exp r3.x, r0.x + temp3.x = exp2(temp0.x); + // exp r3.y, r0.y + temp3.y = exp2(temp0.y); + // exp r3.z, r0.z + temp3.z = exp2(temp0.z); + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mul r0, r2, r3 + temp0 = temp2 * temp3; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 color : COLOR; +}; + +float4 PS_Array_Shader_1(PS_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 2.2, 2, 1, 0 + // def c1, 0.25, 0, 0, 0 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xyz + // dcl t3.xyz + // dcl v0 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t2, c11.zxyw + temp0.xy = i.texcoord2.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t2, c11.yzxw + temp1.xy = i.texcoord2.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t2, c11.wzyx + temp2.xy = i.texcoord2.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t2, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord2.xy); + // texld r4, t0, s1 + temp4 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r5, t1, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t2.z + temp0 = temp3 + -i.texcoord2.z; + // cmp r0, r0, c0.z, c0.w + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.z, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c1.x + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, c0.y + temp0.xyz = float3(2, 2, 2); + // mov r0.w, r4.w + temp0.w = temp4.w; + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mad r0.xyz, t3, r5.w, r0 + temp0.xyz = i.texcoord3.xyz * temp5.www + temp0.xyz; + // mov r1.w, c0.y + temp1.w = float1(2); + // log r2.x, r4.x + temp2.x = log2(temp4.x); + // log r2.y, r4.y + temp2.y = log2(temp4.y); + // log r2.z, r4.z + temp2.z = log2(temp4.z); + // mul r2.xyz, r2, c0.x + temp2.xyz = temp2.xyz * float3(2.2, 2.2, 2.2); + // exp r1.x, r2.x + temp1.x = exp2(temp2.x); + // exp r1.y, r2.y + temp1.y = exp2(temp2.y); + // exp r1.z, r2.z + temp1.z = exp2(temp2.z); + // mul r0, r0, r1 + temp0 = temp0 * temp1; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_Array[2] = { + compile ps_2_0 PS_Array_Shader_0(), // 45 + compile ps_2_0 PS_Array_Shader_1(), // 46 +}; +// VS_M_Array_Shader_0 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_0_Output +{ + float3 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float4 position : POSITION; + float2 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float color1 : COLOR1; +}; + +VS_M_Array_Shader_0_Output VS_M_Array_Shader_0(VS_M_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + { + // Expression_2_1 + // mul c17.x, c0.x, c1.x + expr17.x = Phase1.x * Time.x; + } + + VS_M_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0.1591549, 0.25 + // def c2, 6.283185, -3.141593, -2.523985E-07, 2.47609E-05 + // def c3, -0.00138884, 0.04166664, -0.5, 0.5 + // def c18, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_texcoord v2 + // dcl_color v3 + // dp3 r0.x, v1, c124 + temp0.x = dot(i.normal.xyz, (World._m00_m10_m20_m30).xyz); + // dp3 r0.y, v1, c125 + temp0.y = dot(i.normal.xyz, (World._m01_m11_m21_m31).xyz); + // dp3 r0.z, v1, c126 + temp0.z = dot(i.normal.xyz, (World._m02_m12_m22_m32).xyz); + // dp3 r0.w, r0, c6 + temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r0.w, r0.w, c0.y + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c5 + temp1.xyz = temp0.www * DirectionalLight[0].Color.xyz; + // mul oT3.xyz, r1, c12 + o.texcoord3 = temp1 * DiffuseColor; + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.x, r0, c8 + temp0.x = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.y, r0.w, c0.y + temp0.y = max(temp0.w, float1(0)); + // mul r0.yzw, r0.y, c9.xxyz + temp0.yzw = temp0.yyy * DirectionalLight[2].Color.xyz; + // max r0.x, r0.x, c0.y + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c7, r0.x, r0.yzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.xxx + temp0.yzw; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul oD0, r0, c3.w + o.color = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // frc r1.w, r1.x + temp1.w = frac(temp1.x); + // mov r2.x, c15.x + temp2.x = Freq1.x; + // mad r1.w, r1.w, r2.x, c17.x + temp1.w = temp1.w * temp2.x + expr17.x; + // mad r1.w, r1.w, c0.z, c0.w + temp1.w = temp1.w * float1(0.15915494) + float1(0.25); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c2.x, c2.y + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mad r2.x, r1.w, c2.z, c2.w + temp2.x = temp1.w * float1(-2.523985E-07) + float1(2.47609E-05); + // mad r2.x, r1.w, r2.x, c3.x + temp2.x = temp1.w * temp2.x + float1(-0.0013888397); + // mad r2.x, r1.w, r2.x, c3.y + temp2.x = temp1.w * temp2.x + float1(0.04166664); + // mad r2.x, r1.w, r2.x, c3.z + temp2.x = temp1.w * temp2.x + float1(-0.5); + // mad r1.w, r1.w, r2.x, c0.x + temp1.w = temp1.w * temp2.x + float1(1); + // mul r1.w, r1.w, c14.x + temp1.w = temp1.w * Amp1.x; + // mul r1.w, r1.w, v3.w + temp1.w = temp1.w * i.color.w; + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mad r0.xyz, c13.x, r1.w, r1 + temp0.xyz = SwayEnable.xxx * temp1.www + temp1.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c16.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r1, c16 + o.texcoord1 = temp1 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov oT2.w, r0.x + o.texcoord2.w = temp0.x; + // mad oT2.xyz, r1, r0.y, c18.xxyw + o.texcoord2.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +// VS_M_Array_Shader_1 Vertex_2_0 Has PRES True +struct VS_M_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 normal : NORMAL; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VS_M_Array_Shader_1_Output +{ + float3 texcoord3 : TEXCOORD3; + float4 color : COLOR; + float4 position : POSITION; + float2 texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; + float4 texcoord2 : TEXCOORD2; + float color1 : COLOR1; +}; + +VS_M_Array_Shader_1_Output VS_M_Array_Shader_1(VS_M_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 17 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 17 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr17; + { + // Expression_2_1 + // mul c17.x, c0.x, c1.x + expr17.x = Phase1.x * Time.x; + } + + VS_M_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0.1591549, 0.25 + // def c2, 6.283185, -3.141593, -2.523985E-07, 2.47609E-05 + // def c3, -0.00138884, 0.04166664, -0.5, 0 + // def c18, 0, -0.0015, 0, 0 + // dcl_position v0 + // dcl_normal v1 + // dcl_blendindices v2 + // dcl_texcoord v3 + // dcl_color v4 + // add r0.x, v2.x, v2.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v1.zxyy, c128[a0.x].yzxy + temp0 = i.normal.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v1.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.normal.xyzx + temp0; + // mul r1, v1.yzxz, c128[a0.x].zxyz + temp1 = i.normal.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // dp3 r0.w, r0, c6 + temp0.w = dot(temp0.xyz, DirectionalLight[0].Direction.xyz); + // max r0.w, r0.w, c3.w + temp0.w = max(temp0.w, float1(0)); + // mul r1.xyz, r0.w, c5 + temp1.xyz = temp0.www * DirectionalLight[0].Color.xyz; + // mul oT3.xyz, r1, c12 + o.texcoord3 = temp1 * DiffuseColor; + // dp3 r0.w, r0, c10 + temp0.w = dot(temp0.xyz, DirectionalLight[2].Direction.xyz); + // dp3 r0.x, r0, c8 + temp0.x = dot(temp0.xyz, DirectionalLight[1].Direction.xyz); + // max r0.y, r0.w, c3.w + temp0.y = max(temp0.w, float1(0)); + // mul r0.yzw, r0.y, c9.xxyz + temp0.yzw = temp0.yyy * DirectionalLight[2].Color.xyz; + // max r0.x, r0.x, c3.w + temp0.x = max(temp0.x, float1(0)); + // mad r0.xyz, c7, r0.x, r0.yzww + temp0.xyz = DirectionalLight[1].Color.xyz * temp0.xxx + temp0.yzw; + // mul r0.xyz, r0, c12 + temp0.xyz = temp0.xyz * DiffuseColor.xyz; + // mov r1.xyz, c4 + temp1.xyz = AmbientLightColor.xyz; + // mad r0.xyz, r1, c11, r0 + temp0.xyz = temp1.xyz * AmbientColor.xyz + temp0.xyz; + // mov r0.w, c1.x + temp0.w = OpacityOverride.x; + // mul oD0, r0, -c3.z + o.color = temp0 * float4(0.5, 0.5, 0.5, 0.5); + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // mov r1.x, c15.x + temp1.x = Freq1.x; + // mad r0.w, r0.w, r1.x, c17.x + temp0.w = temp0.w * temp1.x + expr17.x; + // mad r0.w, r0.w, c0.z, c0.w + temp0.w = temp0.w * float1(0.15915494) + float1(0.25); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mad r0.w, r0.w, c2.x, c2.y + temp0.w = temp0.w * float1(6.2831855) + float1(-3.1415927); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mad r1.x, r0.w, c2.z, c2.w + temp1.x = temp0.w * float1(-2.523985E-07) + float1(2.47609E-05); + // mad r1.x, r0.w, r1.x, c3.x + temp1.x = temp0.w * temp1.x + float1(-0.0013888397); + // mad r1.x, r0.w, r1.x, c3.y + temp1.x = temp0.w * temp1.x + float1(0.04166664); + // mad r1.x, r0.w, r1.x, c3.z + temp1.x = temp0.w * temp1.x + float1(-0.5); + // mad r0.w, r0.w, r1.x, c0.x + temp0.w = temp0.w * temp1.x + float1(1); + // mul r0.w, r0.w, c14.x + temp0.w = temp0.w * Amp1.x; + // mul r0.w, r0.w, v4.w + temp0.w = temp0.w * i.color.w; + // mad r0.xyz, c13.x, r0.w, r0 + temp0.xyz = SwayEnable.xxx * temp0.www + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 oPos.z, r0, c121 + o.position.z = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // dp4 oPos.w, r0, c122 + o.position.w = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // add r1.xy, r0, c16.zwzw + temp1.xy = temp0.xy + Shroud.ScaleUV_OffsetUV.zw; + // mul oT1.xy, r1, c16 + o.texcoord1 = temp1 * Shroud.ScaleUV_OffsetUV; + // mov oT0.xy, v3 + o.texcoord = i.texcoord; + // dp4 r1.x, r0, c113 + temp1.x = dot(temp0, (ShadowMapWorldToShadow._m00_m10_m20_m30)); + // dp4 r1.y, r0, c114 + temp1.y = dot(temp0, (ShadowMapWorldToShadow._m01_m11_m21_m31)); + // dp4 r1.z, r0, c115 + temp1.z = dot(temp0, (ShadowMapWorldToShadow._m02_m12_m22_m32)); + // dp4 r0.x, r0, c116 + temp0.x = dot(temp0, (ShadowMapWorldToShadow._m03_m13_m23_m33)); + // rcp r0.y, r0.x + temp0.y = 1.0f / temp0.x; + // mov oT2.w, r0.x + o.texcoord2.w = temp0.x; + // mad oT2.xyz, r1, r0.y, c18.xxyw + o.texcoord2.xyz = temp1.xyz * temp0.yyy + float3(0, 0, -0.0015); + // mov oD1.x, c0.x + o.color1 = float4(1, 1, 1, 1); + // + + return o; +} + +VertexShader VS_M_Array[2] = { + compile vs_2_0 VS_M_Array_Shader_0(), // 49 + compile vs_2_0 VS_M_Array_Shader_1(), // 50 +}; +// PS_M_Array_Shader_0 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_0_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord3 : TEXCOORD3; + float4 color : COLOR; +}; + +float4 PS_M_Array_Shader_0(PS_M_Array_Shader_0_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + float3 temp3; + // def c0, 2, 0, 0, 0 + // dcl t0.xy + // dcl t1.xy + // dcl t3.xyz + // dcl v0 + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r1, t1, s1 + temp1 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mov r2.xyz, c0.x + temp2.xyz = float3(2, 2, 2); + // mov r3.xyz, v0 + temp3.xyz = i.color.xyz; + // mad r2.xyz, r3, r2, t3 + temp2.xyz = temp3.xyz * temp2.xyz + i.texcoord3.xyz; + // mul r2.w, r0.w, v0.w + temp2.w = temp0.w * i.color.w; + // mov r0.w, c0.x + temp0.w = float1(2); + // mul r0, r2, r0 + temp0 = temp2 * temp0; + // mul r0.xyz, r1, r0 + temp0.xyz = temp1.xyz * temp0.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// PS_M_Array_Shader_1 Pixel_2_0 Has PRES False +struct PS_M_Array_Shader_1_Input +{ + float2 texcoord : TEXCOORD; + float2 texcoord1 : TEXCOORD1; + float3 texcoord2 : TEXCOORD2; + float3 texcoord3 : TEXCOORD3; + float4 color : COLOR; +}; + +float4 PS_M_Array_Shader_1(PS_M_Array_Shader_1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4, temp5; + // def c0, 2, 1, 0, 0.25 + // dcl t0.xy + // dcl t1.xy + // dcl t2.xyz + // dcl t3.xyz + // dcl v0 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // add r0.xy, t2, c11.zxyw + temp0.xy = i.texcoord2.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx; + // add r1.xy, t2, c11.yzxw + temp1.xy = i.texcoord2.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz; + // add r2.xy, t2, c11.wzyx + temp2.xy = i.texcoord2.xy + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz; + // texld r0, r0, s0 + temp0 = tex2D(ShadowMapSampler, temp0.xy); + // texld r1, r1, s0 + temp1 = tex2D(ShadowMapSampler, temp1.xy); + // texld r2, r2, s0 + temp2 = tex2D(ShadowMapSampler, temp2.xy); + // texld r3, t2, s0 + temp3 = tex2D(ShadowMapSampler, i.texcoord2.xy); + // texld r4, t0, s1 + temp4 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // texld r5, t1, s2 + temp5 = tex2D(ShroudTextureSampler, i.texcoord1.xy); + // mov r3.y, r0.x + temp3.y = temp0.x; + // mov r3.z, r1.x + temp3.z = temp1.x; + // mov r3.w, r2.x + temp3.w = temp2.x; + // add r0, r3, -t2.z + temp0 = temp3 + -i.texcoord2.z; + // cmp r0, r0, c0.y, c0.z + temp0 = (temp0 >= 0) ? float4(1, 1, 1, 1) : float4(0, 0, 0, 0); + // dp4 r5.w, c0.y, r0 + temp5.w = dot(float4(1, 1, 1, 1), temp0); + // mul r5.w, r5.w, c0.w + temp5.w = temp5.w * float1(0.25); + // mov r0.xyz, c0.x + temp0.xyz = float3(2, 2, 2); + // mov r0.w, r4.w + temp0.w = temp4.w; + // mul r0, r0, v0 + temp0 = temp0 * i.color; + // mad r0.xyz, t3, r5.w, r0 + temp0.xyz = i.texcoord3.xyz * temp5.www + temp0.xyz; + // mov r4.w, c0.x + temp4.w = float1(2); + // mul r0, r4, r0 + temp0 = temp4 * temp0; + // mul r0.xyz, r5, r0 + temp0.xyz = temp5.xyz * temp0.xyz; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +PixelShader PS_M_Array[2] = { + compile ps_2_0 PS_M_Array_Shader_0(), // 51 + compile ps_2_0 PS_M_Array_Shader_1(), // 52 +}; +// VSCreateShadowMap_Array_Shader_0 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_0_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_0_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_0_Output VSCreateShadowMap_Array_Shader_0(VSCreateShadowMap_Array_Shader_0_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + // Expression_2_1 + // mul c14.x, c0.x, c1.x + expr14.x = Phase1.x * Time.x; + } + + VSCreateShadowMap_Array_Shader_0_Output o; + float4 temp0, temp1; + float temp2; + // def c0, 1, 0, 0.1591549, 0.25 + // def c1, 6.283185, -3.141593, -2.523985E-07, 2.47609E-05 + // def c2, -0.00138884, 0.04166664, -0.5, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad r0, v0.xyzx, c0.xxxy, c0.yyyx + temp0 = i.position.xyzx * float4(1, 1, 1, 0) + float4(0, 0, 0, 1); + // dp4 r1.x, r0, c124 + temp1.x = dot(temp0, (World._m00_m10_m20_m30)); + // frc r1.w, r1.x + temp1.w = frac(temp1.x); + // mov r2.x, c13.x + temp2.x = Freq1.x; + // mad r1.w, r1.w, r2.x, c14.x + temp1.w = temp1.w * temp2.x + expr14.x; + // mad r1.w, r1.w, c0.z, c0.w + temp1.w = temp1.w * float1(0.15915494) + float1(0.25); + // frc r1.w, r1.w + temp1.w = frac(temp1.w); + // mad r1.w, r1.w, c1.x, c1.y + temp1.w = temp1.w * float1(6.2831855) + float1(-3.1415927); + // mul r1.w, r1.w, r1.w + temp1.w = temp1.w * temp1.w; + // mad r2.x, r1.w, c1.z, c1.w + temp2.x = temp1.w * float1(-2.523985E-07) + float1(2.47609E-05); + // mad r2.x, r1.w, r2.x, c2.x + temp2.x = temp1.w * temp2.x + float1(-0.0013888397); + // mad r2.x, r1.w, r2.x, c2.y + temp2.x = temp1.w * temp2.x + float1(0.04166664); + // mad r2.x, r1.w, r2.x, c2.z + temp2.x = temp1.w * temp2.x + float1(-0.5); + // mad r1.w, r1.w, r2.x, c0.x + temp1.w = temp1.w * temp2.x + float1(1); + // mul r1.w, r1.w, c12.x + temp1.w = temp1.w * Amp1.x; + // mul r1.w, r1.w, v2.w + temp1.w = temp1.w * i.color.w; + // dp4 r1.y, r0, c125 + temp1.y = dot(temp0, (World._m01_m11_m21_m31)); + // dp4 r1.z, r0, c126 + temp1.z = dot(temp0, (World._m02_m12_m22_m32)); + // mad r0.xyz, c11.x, r1.w, r1 + temp0.xyz = SwayEnable.xxx * temp1.www + temp1.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// VSCreateShadowMap_Array_Shader_1 Vertex_2_0 Has PRES True +struct VSCreateShadowMap_Array_Shader_1_Input +{ + float4 position : POSITION; + float4 blendindices : BLENDINDICES; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct VSCreateShadowMap_Array_Shader_1_Output +{ + float4 position : POSITION; + float texcoord1 : TEXCOORD1; + float2 texcoord : TEXCOORD; +}; + +VSCreateShadowMap_Array_Shader_1_Output VSCreateShadowMap_Array_Shader_1(VSCreateShadowMap_Array_Shader_1_Input i) +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + // Expression_2_1 + // mul c14.x, c0.x, c1.x + expr14.x = Phase1.x * Time.x; + } + + VSCreateShadowMap_Array_Shader_1_Output o; + float4 temp0, temp1; + float addr0; + // def c0, 1, -1, 0.1591549, 0.25 + // def c1, 6.283185, -3.141593, -2.523985E-07, 2.47609E-05 + // def c2, -0.00138884, 0.04166664, -0.5, 0 + // dcl_position v0 + // dcl_blendindices v1 + // dcl_texcoord v2 + // dcl_color v3 + // add r0.x, v1.x, v1.x + temp0.x = i.blendindices.x + i.blendindices.x; + // frc r0.y, r0.x + temp0.y = frac(temp0.x); + // add r0.z, r0.x, -r0.y + temp0.z = temp0.x + -temp0.y; + // slt r0.y, -r0.y, r0.y + temp0.y = (-temp0.y < temp0.y) ? 1 : 0; + // slt r0.x, r0.x, -r0.x + temp0.x = (temp0.x < -temp0.x) ? 1 : 0; + // mad r0.x, r0.x, r0.y, r0.z + temp0.x = temp0.x * temp0.y + temp0.z; + // mova a0.x, r0.x + addr0.x = temp0.x; + // mul r0, v0.zxyy, c128[a0.x].yzxy + temp0 = i.position.zxyy * WorldBones[0 + addr0.x].yzxy; + // mad r0, c128[a0.x].wwwx, v0.xyzx, r0 + temp0 = WorldBones[0 + addr0.x].wwwx * i.position.xyzx + temp0; + // mul r1, v0.yzxz, c128[a0.x].zxyz + temp1 = i.position.yzxz * WorldBones[0 + addr0.x].zxyz; + // mad r0, r0, c0.xxxy, -r1 + temp0 = temp0 * float4(1, 1, 1, -1) + -temp1; + // mul r1.xyz, r0.w, c128[a0.x] + temp1.xyz = temp0.www * WorldBones[0 + addr0.x].xyz; + // mad r1.xyz, c128[a0.x].w, r0, -r1 + temp1.xyz = WorldBones[0 + addr0.x].www * temp0.xyz + -temp1.xyz; + // mad r1.xyz, c128[a0.x].yzxw, r0.zxyw, r1 + temp1.xyz = WorldBones[0 + addr0.x].yzx * temp0.zxy + temp1.xyz; + // mad r0.xyz, c128[a0.x].zxyw, -r0.yzxw, r1 + temp0.xyz = WorldBones[0 + addr0.x].zxy * -temp0.yzx + temp1.xyz; + // add r0.xyz, r0, c129[a0.x] + temp0.xyz = temp0.xyz + WorldBones[1 + addr0.x].xyz; + // frc r0.w, r0.x + temp0.w = frac(temp0.x); + // mov r1.x, c13.x + temp1.x = Freq1.x; + // mad r0.w, r0.w, r1.x, c14.x + temp0.w = temp0.w * temp1.x + expr14.x; + // mad r0.w, r0.w, c0.z, c0.w + temp0.w = temp0.w * float1(0.15915494) + float1(0.25); + // frc r0.w, r0.w + temp0.w = frac(temp0.w); + // mad r0.w, r0.w, c1.x, c1.y + temp0.w = temp0.w * float1(6.2831855) + float1(-3.1415927); + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // mad r1.x, r0.w, c1.z, c1.w + temp1.x = temp0.w * float1(-2.523985E-07) + float1(2.47609E-05); + // mad r1.x, r0.w, r1.x, c2.x + temp1.x = temp0.w * temp1.x + float1(-0.0013888397); + // mad r1.x, r0.w, r1.x, c2.y + temp1.x = temp0.w * temp1.x + float1(0.04166664); + // mad r1.x, r0.w, r1.x, c2.z + temp1.x = temp0.w * temp1.x + float1(-0.5); + // mad r0.w, r0.w, r1.x, c0.x + temp0.w = temp0.w * temp1.x + float1(1); + // mul r0.w, r0.w, c12.x + temp0.w = temp0.w * Amp1.x; + // mul r0.w, r0.w, v3.w + temp0.w = temp0.w * i.color.w; + // mad r0.xyz, c11.x, r0.w, r0 + temp0.xyz = SwayEnable.xxx * temp0.www + temp0.xyz; + // mov r0.w, c0.x + temp0.w = float1(1); + // dp4 oPos.x, r0, c119 + o.position.x = dot(temp0, (ViewProjection._m00_m10_m20_m30)); + // dp4 oPos.y, r0, c120 + o.position.y = dot(temp0, (ViewProjection._m01_m11_m21_m31)); + // dp4 r1.y, r0, c122 + temp1.y = dot(temp0, (ViewProjection._m03_m13_m23_m33)); + // dp4 r1.x, r0, c121 + temp1.x = dot(temp0, (ViewProjection._m02_m12_m22_m32)); + // rcp r0.x, r1.y + temp0.x = 1.0f / temp1.y; + // mov oPos.zw, r1.xyxy + o.position.zw = temp1.xy; + // mul oT1.x, r1.x, r0.x + o.texcoord1 = temp1.x * temp0.x; + // mov oT0.xy, v2 + o.texcoord = i.texcoord; + // + + return o; +} + +VertexShader VSCreateShadowMap_Array[2] = { + compile vs_2_0 VSCreateShadowMap_Array_Shader_0(), // 55 + compile vs_2_0 VSCreateShadowMap_Array_Shader_1(), // 56 +}; +// _CreateShadowMap_PixelShader11 Pixel_2_0 Has PRES False +struct _CreateShadowMap_PixelShader11_Input +{ + float2 texcoord : TEXCOORD; + float texcoord1 : TEXCOORD1; +}; + +float4 _CreateShadowMap_PixelShader11(_CreateShadowMap_PixelShader11_Input i) : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, -0.3764706, 0, 0, 0 + // dcl t0.xy + // dcl t1.x + // dcl_2d s0 + // texld r0, t0, s0 + temp0 = tex2D(DiffuseTextureSampler, i.texcoord.xy); + // mov r0.x, c1.x + temp0.x = OpacityOverride.x; + // mad r0, r0.x, r0.w, c0.x + temp0 = temp0.x * temp0.w + float4(-0.3764706, -0.3764706, -0.3764706, -0.3764706); + // texkill r0 + clip(temp0); + // mov r0, t1.x + temp0 = i.texcoord1.x; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _CreateShadowMap_Expression12 Expression_2_0 Has PRES False +float _CreateShadowMap_Expression12() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_M_Expression13 Expression_2_0 Has PRES False +float Default_M_Expression13() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_M_Expression14 Expression_2_0 Has PRES False +float Default_M_Expression14() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +// Default_Expression15 Expression_2_0 Has PRES False +float Default_Expression15() +{ + float1 expr0; + // mov c0.x, c0.x + expr0.x = HasShadow.x; + return expr0; +} + +// Default_Expression16 Expression_2_0 Has PRES False +float Default_Expression16() +{ + float1 expr0; + // min c0.x, c0.x, (1) + expr0.x = min(NumJointsPerVertex.x, (1)); + return expr0; +} + +technique Default +{ + pass p0 + { + VertexShader = VS_Array[Default_Expression16()]; // 47 + PixelShader = PS_Array[Default_Expression15()]; // 48 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique Default_M +{ + pass p0 + { + VertexShader = VS_M_Array[Default_M_Expression14()]; // 53 + PixelShader = PS_M_Array[Default_M_Expression13()]; // 54 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 1; + AlphaFunc = 7; + AlphaRef = 96; + } +} + +technique _CreateShadowMap +{ + pass p0 + { + VertexShader = VSCreateShadowMap_Array[_CreateShadowMap_Expression12()]; // 57 + PixelShader = compile ps_2_0 _CreateShadowMap_PixelShader11(); // 58 + ZEnable = 1; + ZFunc = 4; + ZWriteEnable = 1; + CullMode = 1; + AlphaBlendEnable = 0; + AlphaTestEnable = 0; + } +} + diff --git a/underwaterdeferred.fx b/underwaterdeferred.fx new file mode 100644 index 0000000..814fd7f --- /dev/null +++ b/underwaterdeferred.fx @@ -0,0 +1,814 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct +{ + float3 Color; + float3 Direction; +} DirectionalLight[3] : register(ps_3_0, c5) = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture DepthLutSampler ; // 2 +sampler2D DepthLutSamplerSampler : register(ps_2_0, s0) : register(ps_3_0, s0) = +sampler_state +{ + Texture = ; // 5 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 3; + AddressV = 3; +}; +texture CausticSampler ; // 9 +sampler2D CausticSamplerSampler : register(ps_3_0, s1) = +sampler_state +{ + Texture = ; // 12 + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; + AddressU = 1; + AddressV = 1; +}; +texture DepthTexture ; // 16 +sampler2D DepthTextureSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 18 + MinFilter = 1; + MagFilter = 1; + MipFilter = 1; + AddressU = 3; + AddressV = 3; +}; +column_major float4x4 ViewI : ViewInverse : register(ps_2_0, c11) : register(vs_2_0, c15) : register(ps_3_0, c11) : register(vs_3_0, c15); +column_major float4x4 ProjectionI : ProjectionInverse : register(vs_2_0, c11) : register(vs_3_0, c11); +float Time : Time; +// _Caustics_M_PixelShader1 Pixel_2_0 Has PRES False +float4 _Caustics_M_PixelShader1() : COLOR +{ + float4 out_color; + float4 temp0; + // def c0, 0, 0, 0, 0 + // mov r0, c0.x + temp0 = float4(0, 0, 0, 0); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _Caustics_M_VertexShader2 Vertex_2_0 Has PRES False +float4 _Caustics_M_VertexShader2() : POSITION +{ + float4 out_position; + // def c0, 0, 1, 0, 0 + // mov oPos, c0.xxxy + out_position = float4(0, 0, 0, 1); + // + + return out_position; +} + +// _Tint_M_PixelShader3 Pixel_2_0 Has PRES False +struct _Tint_M_PixelShader3_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; +}; + +float4 _Tint_M_PixelShader3(_Tint_M_PixelShader3_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 200, 201, 0.005, 0 + // dcl t0.xy + // dcl t1.xyz + // dcl_2d s0 + // dcl_2d s1 + // texld r0, t0, s1 + temp0 = tex2D(DepthTextureSampler, i.texcoord.xy); + // mad r0.x, r0.x, t1.z, c13.w + temp0.x = temp0.x * i.texcoord1.z + (ViewI._m02_m12_m22_m32).w; + // add r1, -r0.x, c0.x + temp1 = -temp0.x + float4(200, 200, 200, 200); + // add r0.x, -r0.x, c0.y + temp0.x = -temp0.x + float1(201); + // mul r0.xy, r0.x, c0.z + temp0.xy = temp0.xx * float2(0.005, 0.005); + // texkill r1 + clip(temp1); + // texld r0, r0, s0 + temp0 = tex2D(DepthLutSamplerSampler, temp0.xy); + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// _Tint_M_VertexShader4 Vertex_2_0 Has PRES False +struct _Tint_M_VertexShader4_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct _Tint_M_VertexShader4_Output +{ + float3 texcoord1 : TEXCOORD1; + float4 position : POSITION; + float2 texcoord : TEXCOORD; +}; + +_Tint_M_VertexShader4_Output _Tint_M_VertexShader4(_Tint_M_VertexShader4_Input i) +{ + _Tint_M_VertexShader4_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // mad r0, v0.xyxx, c0.xxyy, c0.yyxx + temp0 = i.position.xyxx * float4(1, 1, 0, 0) + float4(0, 0, 1, 1); + // dp4 r1.x, r0, c14 + temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33)); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // dp4 r1.y, r0, c11 + temp1.y = dot(temp0, (ProjectionI._m00_m10_m20_m30)); + // dp4 r1.z, r0, c12 + temp1.z = dot(temp0, (ProjectionI._m01_m11_m21_m31)); + // dp4 r1.w, r0, c13 + temp1.w = dot(temp0, (ProjectionI._m02_m12_m22_m32)); + // mul r0.xyz, r1.x, r1.yzww + temp0.xyz = temp1.xxx * temp1.yzw; + // rcp r0.w, r0.z + temp0.w = 1.0f / temp0.z; + // mul r0.xyz, r0, r0.w + temp0.xyz = temp0.xyz * temp0.www; + // dp3 oT1.x, r0, c15 + o.texcoord1.x = dot(temp0.xyz, (ViewI._m00_m10_m20_m30).xyz); + // dp3 oT1.y, r0, c16 + o.texcoord1.y = dot(temp0.xyz, (ViewI._m01_m11_m21_m31).xyz); + // dp3 oT1.z, r0, c17 + o.texcoord1.z = dot(temp0.xyz, (ViewI._m02_m12_m22_m32).xyz); + // mov oPos.xyz, v0 + o.position.xyz = i.position.xyz; + // mov oPos.w, c0.x + o.position.w = float1(1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Caustics_U_PixelShader5 Pixel_3_0 Has PRES True +struct Caustics_U_PixelShader5_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; +}; + +float4 Caustics_U_PixelShader5(Caustics_U_PixelShader5_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + // Expression_2_1 + // mul c14.x, c0.x, (0.12) + expr14.x = Time.x * (0.12); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3, temp4; + // def c0, 200, 0.004, 0.4067543, 0.9135376 + // def c1, -1, 0.3, 0.27, 0.33 + // def c2, 201, 0.005, 0.75, 5 + // def c3, -0.9135376, 0.4067543, 0, 0.9135376 + // def c4, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1 v1.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v0, s2 + temp0 = tex2D(DepthTextureSampler, i.texcoord.xy); + // mov r0.w, c11.w + temp0.w = (ViewI._m00_m10_m20_m30).w; + // mov r0.y, c12.w + temp0.y = (ViewI._m01_m11_m21_m31).w; + // mov r0.z, c13.w + temp0.z = (ViewI._m02_m12_m22_m32).w; + // mad r0.xyz, r0.x, v1.yzxw, r0.yzww + temp0.xyz = temp0.xxx * i.texcoord1.yzx + temp0.yzw; + // add r1, -r0.y, c0.x + temp1 = -temp0.y + float4(200, 200, 200, 200); + // texkill r1 + clip(temp1); + // rcp r0.w, c6.z + temp0.w = 1.0f / DirectionalLight[0].Direction.z; + // mul r1.xy, r0.y, c6 + temp1.xy = temp0.yy * DirectionalLight[0].Direction.xy; + // mad r1.xy, r1, -r0.w, r0.zxzw + temp1.xy = temp1.xy * -temp0.ww + temp0.zx; + // mul r1.xy, r1, c0.y + temp1.xy = temp1.xy * float2(0.004, 0.004); + // dp2add r1.w, r1, c3, c3.z + temp1.w = dot(temp1.xy, float2(-0.9135376, 0.40675429)) + float1(0); + // mov r2.zw, c0 + temp2.zw = float2(0.40675429, 0.9135376); + // dp2add r1.z, r1, r2.zwzw, c14.x + temp1.z = dot(temp1.xy, temp2.zw) + expr14.x; + // dp2add r2.y, r1, c3.wyzw, c3.z + temp2.y = dot(temp1.xy, float2(0.9135376, 0.40675429)) + float1(0); + // mov r3.xy, c3 + temp3.xy = float2(-0.9135376, 0.40675429); + // dp2add r2.x, r1, r3.yxzw, c14.x + temp2.x = dot(temp1.xy, temp3.yx) + expr14.x; + // texld r3, r2, s1 + temp3 = tex2D(CausticSamplerSampler, temp2.xy); + // texld r4, r1.zwzw, s1 + temp4 = tex2D(CausticSamplerSampler, temp1.zw); + // add r1.xy, r3, r4 + temp1.xy = temp3.xy + temp4.xy; + // add r1.xy, r1, c1.x + temp1.xy = temp1.xy + float2(-1, -1); + // mad r2.zw, r1.xyxy, c1.y, r1 + temp2.zw = temp1.xy * float2(0.3, 0.3) + temp1.zw; + // texld r3, r2.zwzw, s1 + temp3 = tex2D(CausticSamplerSampler, temp2.zw); + // mad r2.zw, r1.xyxy, -c1.y, -r2.xyxy + temp2.zw = temp1.xy * float2(-0.3, -0.3) + -temp2.xy; + // texld r4, r2.zwzw, s1 + temp4 = tex2D(CausticSamplerSampler, temp2.zw); + // mul r3.y, r3.w, r4.w + temp3.y = temp3.w * temp4.w; + // mad r2.zw, r1.xyxy, c1.z, r1 + temp2.zw = temp1.xy * float2(0.27, 0.27) + temp1.zw; + // mad r1.zw, r1.xyxy, c1.w, r1 + temp1.zw = temp1.xy * float2(0.33, 0.33) + temp1.zw; + // texld r4, r2.zwzw, s1 + temp4 = tex2D(CausticSamplerSampler, temp2.zw); + // mad r2.zw, r1.xyxy, -c1.z, -r2.xyxy + temp2.zw = temp1.xy * float2(-0.27, -0.27) + -temp2.xy; + // mad r1.xy, r1, -c1.w, -r2 + temp1.xy = temp1.xy * float2(-0.33, -0.33) + -temp2.xy; + // texld r2, r2.zwzw, s1 + temp2 = tex2D(CausticSamplerSampler, temp2.zw); + // mul r3.x, r4.w, r2.w + temp3.x = temp4.w * temp2.w; + // texld r2, r1.zwzw, s1 + temp2 = tex2D(CausticSamplerSampler, temp1.zw); + // texld r1, r1, s1 + temp1 = tex2D(CausticSamplerSampler, temp1.xy); + // mul r3.z, r2.w, r1.w + temp3.z = temp2.w * temp1.w; + // mul r1.xyz, r3, r3 + temp1.xyz = temp3.xyz * temp3.xyz; + // add r0.w, -r0.y, c2.x + temp0.w = -temp0.y + float1(201); + // mul r2.xy, r0.w, c2.y + temp2.xy = temp0.ww * float2(0.005, 0.005); + // mov r2.zw, c3.z + temp2.zw = float2(0, 0); + // texldl r2, r2, s0 + temp2 = tex2Dlod(DepthLutSamplerSampler, temp2); + // mul r1.xyz, r1, r2.w + temp1.xyz = temp1.xyz * temp2.www; + // mov r2.x, c1.x + temp2.x = float1(-1); + // mov r2.z, c2.z + temp2.z = float1(0.75); + // lrp r3.xyz, r2.z, -r2.x, c5 + temp3.xyz = lerp(DirectionalLight[0].Color.xyz, -temp2.xxx, temp2.zzz); + // mul r1.xyz, r1, r3 + temp1.xyz = temp1.xyz * temp3.xyz; + // dsy r2.xyz, r0.yzxw + temp2.xyz = ddy(temp0.yzx); + // dsx r0.xyz, r0 + temp0.xyz = ddx(temp0.xyz); + // mul r3.xyz, r2, r0 + temp3.xyz = temp2.xyz * temp0.xyz; + // mad r0.xyz, r2.zxyw, r0.yzxw, -r3 + temp0.xyz = temp2.zxy * temp0.yzx + -temp3.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, c6 + temp0.x = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r1.w, r0.x, c3.z + temp1.w = max(temp0.x, float1(0)); + // mul r0.xyz, r1, r1.w + temp0.xyz = temp1.xyz * temp1.www; + // mul r0.xyz, r0, c2.w + temp0.xyz = temp0.xyz * float3(5, 5, 5); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c4.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // mov oC0.w, -c1.x + out_color.w = float1(1); + // + + return out_color; +} + +// Caustics_U_VertexShader6 Vertex_3_0 Has PRES False +struct Caustics_U_VertexShader6_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Caustics_U_VertexShader6_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; +}; + +Caustics_U_VertexShader6_Output Caustics_U_VertexShader6(Caustics_U_VertexShader6_Input i) +{ + Caustics_U_VertexShader6_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_texcoord1 o2.xyz + // mad r0, v0.xyxx, c0.xxyy, c0.yyxx + temp0 = i.position.xyxx * float4(1, 1, 0, 0) + float4(0, 0, 1, 1); + // dp4 r1.x, r0, c14 + temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33)); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // dp4 r1.y, r0, c11 + temp1.y = dot(temp0, (ProjectionI._m00_m10_m20_m30)); + // dp4 r1.z, r0, c12 + temp1.z = dot(temp0, (ProjectionI._m01_m11_m21_m31)); + // dp4 r1.w, r0, c13 + temp1.w = dot(temp0, (ProjectionI._m02_m12_m22_m32)); + // mul r0.xyz, r1.x, r1.yzww + temp0.xyz = temp1.xxx * temp1.yzw; + // rcp r0.w, r0.z + temp0.w = 1.0f / temp0.z; + // mul r0.xyz, r0, r0.w + temp0.xyz = temp0.xyz * temp0.www; + // dp3 o2.x, r0, c15 + o.texcoord1.x = dot(temp0.xyz, (ViewI._m00_m10_m20_m30).xyz); + // dp3 o2.y, r0, c16 + o.texcoord1.y = dot(temp0.xyz, (ViewI._m01_m11_m21_m31).xyz); + // dp3 o2.z, r0, c17 + o.texcoord1.z = dot(temp0.xyz, (ViewI._m02_m12_m22_m32).xyz); + // mov o0.xyz, v0 + o.position.xyz = i.position.xyz; + // mov o0.w, c0.x + o.position.w = float1(1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Caustics_PixelShader7 Pixel_3_0 Has PRES True +struct Caustics_PixelShader7_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; +}; + +float4 Caustics_PixelShader7(Caustics_PixelShader7_Input i) : COLOR +{ + /* + PRSI + OutputRegisterOffset: 14 + Unknown1: 0 + Unknown2: 0 + OutputRegisterCount: 1 + Unknown3: 0 + Unknown4: 0 + Unknown5: 14 + Unknown6: 1 + Mappings: 1 + 0 - ConstOutput: 0 ConstInput 0 + + */ + float4 expr14; + { + // Expression_2_1 + // mul c14.x, c0.x, (0.12) + expr14.x = Time.x * (0.12); + } + + float4 out_color; + float4 temp0, temp1, temp2, temp3; + // def c0, 200, 0.004, 0.4067543, 0.9135376 + // def c1, -1, 0.3, 201, 0.005 + // def c2, -0.9135376, 0.4067543, 0, 0.9135376 + // def c3, 0.75, 5, 2.2, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1 v1.xyz + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, v0, s2 + temp0 = tex2D(DepthTextureSampler, i.texcoord.xy); + // mov r0.w, c11.w + temp0.w = (ViewI._m00_m10_m20_m30).w; + // mov r0.y, c12.w + temp0.y = (ViewI._m01_m11_m21_m31).w; + // mov r0.z, c13.w + temp0.z = (ViewI._m02_m12_m22_m32).w; + // mad r0.xyz, r0.x, v1.yzxw, r0.yzww + temp0.xyz = temp0.xxx * i.texcoord1.yzx + temp0.yzw; + // add r1, -r0.y, c0.x + temp1 = -temp0.y + float4(200, 200, 200, 200); + // texkill r1 + clip(temp1); + // rcp r0.w, c6.z + temp0.w = 1.0f / DirectionalLight[0].Direction.z; + // mul r1.xy, r0.y, c6 + temp1.xy = temp0.yy * DirectionalLight[0].Direction.xy; + // mad r1.xy, r1, -r0.w, r0.zxzw + temp1.xy = temp1.xy * -temp0.ww + temp0.zx; + // mul r1.xy, r1, c0.y + temp1.xy = temp1.xy * float2(0.004, 0.004); + // dp2add r1.w, r1, c2, c2.z + temp1.w = dot(temp1.xy, float2(-0.9135376, 0.40675429)) + float1(0); + // mov r2.zw, c0 + temp2.zw = float2(0.40675429, 0.9135376); + // dp2add r1.z, r1, r2.zwzw, c14.x + temp1.z = dot(temp1.xy, temp2.zw) + expr14.x; + // texld r2, r1.zwzw, s1 + temp2 = tex2D(CausticSamplerSampler, temp1.zw); + // dp2add r2.w, r1, c2.wyzw, c2.z + temp2.w = dot(temp1.xy, float2(0.9135376, 0.40675429)) + float1(0); + // mov r3.xy, c2 + temp3.xy = float2(-0.9135376, 0.40675429); + // dp2add r2.z, r1, r3.yxzw, c14.x + temp2.z = dot(temp1.xy, temp3.yx) + expr14.x; + // texld r3, r2.zwzw, s1 + temp3 = tex2D(CausticSamplerSampler, temp2.zw); + // add r1.xy, r2, r3 + temp1.xy = temp2.xy + temp3.xy; + // add r1.xy, r1, c1.x + temp1.xy = temp1.xy + float2(-1, -1); + // mad r1.zw, r1.xyxy, c1.y, r1 + temp1.zw = temp1.xy * float2(0.3, 0.3) + temp1.zw; + // mad r1.xy, r1, -c1.y, -r2.zwzw + temp1.xy = temp1.xy * float2(-0.3, -0.3) + -temp2.zw; + // texld r2, r1.zwzw, s1 + temp2 = tex2D(CausticSamplerSampler, temp1.zw); + // texld r1, r1, s1 + temp1 = tex2D(CausticSamplerSampler, temp1.xy); + // mul r0.w, r2.w, r1.w + temp0.w = temp2.w * temp1.w; + // mul r0.w, r0.w, r0.w + temp0.w = temp0.w * temp0.w; + // add r1.x, -r0.y, c1.z + temp1.x = -temp0.y + float1(201); + // mul r1.xy, r1.x, c1.w + temp1.xy = temp1.xx * float2(0.005, 0.005); + // mov r1.zw, c2.z + temp1.zw = float2(0, 0); + // texldl r1, r1, s0 + temp1 = tex2Dlod(DepthLutSamplerSampler, temp1); + // mul r0.w, r0.w, r1.w + temp0.w = temp0.w * temp1.w; + // mov r1.x, c1.x + temp1.x = float1(-1); + // mov r2.x, c3.x + temp2.x = float1(0.75); + // lrp r3.xyz, r2.x, -r1.x, c5 + temp3.xyz = lerp(DirectionalLight[0].Color.xyz, -temp1.xxx, temp2.xxx); + // mul r1.xyz, r0.w, r3 + temp1.xyz = temp0.www * temp3.xyz; + // dsy r2.xyz, r0.yzxw + temp2.xyz = ddy(temp0.yzx); + // dsx r0.xyz, r0 + temp0.xyz = ddx(temp0.xyz); + // mul r3.xyz, r2, r0 + temp3.xyz = temp2.xyz * temp0.xyz; + // mad r0.xyz, r2.zxyw, r0.yzxw, -r3 + temp0.xyz = temp2.zxy * temp0.yzx + -temp3.xyz; + // nrm r2.xyz, r0 + temp2.xyz = normalize(temp0.xyz).xyz; + // dp3 r0.x, r2, c6 + temp0.x = dot(temp2.xyz, DirectionalLight[0].Direction.xyz); + // max r1.w, r0.x, c2.z + temp1.w = max(temp0.x, float1(0)); + // mul r0.xyz, r1, r1.w + temp0.xyz = temp1.xyz * temp1.www; + // mul r0.xyz, r0, c3.y + temp0.xyz = temp0.xyz * float3(5, 5, 5); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mul r0.xyz, r1, c3.z + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // mov oC0.w, -c1.x + out_color.w = float1(1); + // + + return out_color; +} + +// Caustics_VertexShader8 Vertex_3_0 Has PRES False +struct Caustics_VertexShader8_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Caustics_VertexShader8_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; +}; + +Caustics_VertexShader8_Output Caustics_VertexShader8(Caustics_VertexShader8_Input i) +{ + Caustics_VertexShader8_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_texcoord1 o2.xyz + // mad r0, v0.xyxx, c0.xxyy, c0.yyxx + temp0 = i.position.xyxx * float4(1, 1, 0, 0) + float4(0, 0, 1, 1); + // dp4 r1.x, r0, c14 + temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33)); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // dp4 r1.y, r0, c11 + temp1.y = dot(temp0, (ProjectionI._m00_m10_m20_m30)); + // dp4 r1.z, r0, c12 + temp1.z = dot(temp0, (ProjectionI._m01_m11_m21_m31)); + // dp4 r1.w, r0, c13 + temp1.w = dot(temp0, (ProjectionI._m02_m12_m22_m32)); + // mul r0.xyz, r1.x, r1.yzww + temp0.xyz = temp1.xxx * temp1.yzw; + // rcp r0.w, r0.z + temp0.w = 1.0f / temp0.z; + // mul r0.xyz, r0, r0.w + temp0.xyz = temp0.xyz * temp0.www; + // dp3 o2.x, r0, c15 + o.texcoord1.x = dot(temp0.xyz, (ViewI._m00_m10_m20_m30).xyz); + // dp3 o2.y, r0, c16 + o.texcoord1.y = dot(temp0.xyz, (ViewI._m01_m11_m21_m31).xyz); + // dp3 o2.z, r0, c17 + o.texcoord1.z = dot(temp0.xyz, (ViewI._m02_m12_m22_m32).xyz); + // mov o0.xyz, v0 + o.position.xyz = i.position.xyz; + // mov o0.w, c0.x + o.position.w = float1(1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +// Tint_PixelShader9 Pixel_3_0 Has PRES False +struct Tint_PixelShader9_Input +{ + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; +}; + +float4 Tint_PixelShader9(Tint_PixelShader9_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1; + // def c0, 200, 201, 0.005, 0 + // def c1, 2.2, 0, 0, 0 + // dcl_texcoord v0.xy + // dcl_texcoord1 v1.z + // dcl_2d s0 + // dcl_2d s1 + // texld r0, v0, s1 + temp0 = tex2D(DepthTextureSampler, i.texcoord.xy); + // mad r0.x, r0.x, v1.z, c13.w + temp0.x = temp0.x * i.texcoord1.z + (ViewI._m02_m12_m22_m32).w; + // add r1, -r0.x, c0.x + temp1 = -temp0.x + float4(200, 200, 200, 200); + // add r0.x, -r0.x, c0.y + temp0.x = -temp0.x + float1(201); + // texkill r1 + clip(temp1); + // mul r0.xy, r0.x, c0.z + temp0.xy = temp0.xx * float2(0.005, 0.005); + // mov r0.zw, c0.w + temp0.zw = float2(0, 0); + // texldl r0, r0, s0 + temp0 = tex2Dlod(DepthLutSamplerSampler, temp0); + // log r1.x, r0.x + temp1.x = log2(temp0.x); + // log r1.y, r0.y + temp1.y = log2(temp0.y); + // log r1.z, r0.z + temp1.z = log2(temp0.z); + // mov oC0.w, r0.w + out_color.w = temp0.w; + // mul r0.xyz, r1, c1.x + temp0.xyz = temp1.xyz * float3(2.2, 2.2, 2.2); + // exp oC0.x, r0.x + out_color.x = exp2(temp0.x); + // exp oC0.y, r0.y + out_color.y = exp2(temp0.y); + // exp oC0.z, r0.z + out_color.z = exp2(temp0.z); + // + + return out_color; +} + +// Tint_VertexShader10 Vertex_3_0 Has PRES False +struct Tint_VertexShader10_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; +}; + +struct Tint_VertexShader10_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float3 texcoord1 : TEXCOORD1; +}; + +Tint_VertexShader10_Output Tint_VertexShader10(Tint_VertexShader10_Input i) +{ + Tint_VertexShader10_Output o; + float4 temp0, temp1; + // def c0, 1, 0, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_position o0 + // dcl_texcoord o1.xy + // dcl_texcoord1 o2.xyz + // mad r0, v0.xyxx, c0.xxyy, c0.yyxx + temp0 = i.position.xyxx * float4(1, 1, 0, 0) + float4(0, 0, 1, 1); + // dp4 r1.x, r0, c14 + temp1.x = dot(temp0, (ProjectionI._m03_m13_m23_m33)); + // rcp r1.x, r1.x + temp1.x = 1.0f / temp1.x; + // dp4 r1.y, r0, c11 + temp1.y = dot(temp0, (ProjectionI._m00_m10_m20_m30)); + // dp4 r1.z, r0, c12 + temp1.z = dot(temp0, (ProjectionI._m01_m11_m21_m31)); + // dp4 r1.w, r0, c13 + temp1.w = dot(temp0, (ProjectionI._m02_m12_m22_m32)); + // mul r0.xyz, r1.x, r1.yzww + temp0.xyz = temp1.xxx * temp1.yzw; + // rcp r0.w, r0.z + temp0.w = 1.0f / temp0.z; + // mul r0.xyz, r0, r0.w + temp0.xyz = temp0.xyz * temp0.www; + // dp3 o2.x, r0, c15 + o.texcoord1.x = dot(temp0.xyz, (ViewI._m00_m10_m20_m30).xyz); + // dp3 o2.y, r0, c16 + o.texcoord1.y = dot(temp0.xyz, (ViewI._m01_m11_m21_m31).xyz); + // dp3 o2.z, r0, c17 + o.texcoord1.z = dot(temp0.xyz, (ViewI._m02_m12_m22_m32).xyz); + // mov o0.xyz, v0 + o.position.xyz = i.position.xyz; + // mov o0.w, c0.x + o.position.w = float1(1); + // mov o1.xy, v1 + o.texcoord = i.texcoord; + // + + return o; +} + +technique Tint +{ + pass p0 + { + VertexShader = compile vs_3_0 Tint_VertexShader10(); // 21 + PixelShader = compile ps_3_0 Tint_PixelShader9(); // 22 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + } +} + +technique Caustics +{ + pass p0 + { + VertexShader = compile vs_3_0 Caustics_VertexShader8(); // 23 + PixelShader = compile ps_3_0 Caustics_PixelShader7(); // 24 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + } +} + +technique Caustics_U +{ + pass p0 + { + VertexShader = compile vs_3_0 Caustics_U_VertexShader6(); // 25 + PixelShader = compile ps_3_0 Caustics_U_PixelShader5(); // 26 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 2; + DestBlend = 2; + } +} + +technique _Tint_M +{ + pass p0 + { + VertexShader = compile vs_2_0 _Tint_M_VertexShader4(); // 27 + PixelShader = compile ps_2_0 _Tint_M_PixelShader3(); // 28 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 9; + DestBlend = 1; + } +} + +technique _Caustics_M +{ + pass p0 + { + VertexShader = compile vs_2_0 _Caustics_M_VertexShader2(); // 29 + PixelShader = compile ps_2_0 _Caustics_M_PixelShader1(); // 30 + ZEnable = 0; + ZWriteEnable = 0; + CullMode = 1; + AlphaTestEnable = 0; + AlphaBlendEnable = 0; + } +} + diff --git a/video.fx b/video.fx new file mode 100644 index 0000000..709ad93 --- /dev/null +++ b/video.fx @@ -0,0 +1,157 @@ +string DefaultParameterScopeBlock = "material"; // 1 +float3 AmbientLightColor = { 0.3, 0.3, 0.3 }; +struct { + float3 Color; + float3 Direction; +} DirectionalLight[3] = { 1.625198, 1.512711, 1.097048, 0.62914, -0.34874, 0.69465, 0.5232916, 0.6654605, 0.7815244, -0.32877, 0.90329, 0.27563, 0.4420466, 0.4102767, 0.4420466, -0.80704, -0.58635, 0.06975 }; +struct { + float3 Color; + float3 Position; + float2 Range_Inner_Outer; +} PointLight[8] ; +struct { + float4 WorldPositionMultiplier_XYZZ; + float2 CurrentOffsetUV; +} Cloud ; +float3 NoCloudMultiplier = { 1, 1, 1 }; +float3 RecolorColorDummy ; +row_major float4x4 ShadowMapWorldToShadow ; +float OpacityOverride = { 1 }; +float3 TintColor = { 1, 1, 1 }; +float3 EyePosition ; +row_major float4x4 ViewProjection ; +float4 WorldBones[128] ; +texture FrameY ; // 2 +sampler2D FrameYSampler : register(ps_2_0, s0) = +sampler_state +{ + Texture = ; // 4 + AddressU = 3; + AddressV = 3; + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; +}; +texture FrameU ; // 7 +sampler2D FrameUSampler : register(ps_2_0, s1) = +sampler_state +{ + Texture = ; // 9 + AddressU = 3; + AddressV = 3; + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; +}; +texture FrameV ; // 12 +sampler2D FrameVSampler : register(ps_2_0, s2) = +sampler_state +{ + Texture = ; // 14 + AddressU = 3; + AddressV = 3; + MinFilter = 2; + MagFilter = 2; + MipFilter = 2; +}; +// Default_PixelShader1 Pixel_2_0 Has PRES False +struct Default_PixelShader1_Input +{ + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +float4 Default_PixelShader1(Default_PixelShader1_Input i) : COLOR +{ + float4 out_color; + float4 temp0, temp1, temp2; + // def c0, -0.062745, -0.50196, -0.50196, 1 + // def c1, 1.164144, -0.0017889, 1.595786, 0 + // def c2, 1.164144, -0.3914428, -0.8134821, 0 + // def c3, 1.164144, 2.017826, -0.0012458, 0 + // dcl t0.xy + // dcl v0 + // dcl_2d s0 + // dcl_2d s1 + // dcl_2d s2 + // texld r0, t0, s0 + temp0 = tex2D(FrameYSampler, i.texcoord.xy); + // texld r1, t0, s1 + temp1 = tex2D(FrameUSampler, i.texcoord.xy); + // texld r2, t0, s2 + temp2 = tex2D(FrameVSampler, i.texcoord.xy); + // mov r0.y, r1.x + temp0.y = temp1.x; + // mov r0.z, r2.x + temp0.z = temp2.x; + // add r0.xyz, r0, c0 + temp0.xyz = temp0.xyz + float3(-0.062745, -0.50196, -0.50196); + // dp3 r1.x, r0, c1 + temp1.x = dot(temp0.xyz, float3(1.1641444, -0.0017889, 1.5957862)); + // dp3 r1.y, r0, c2 + temp1.y = dot(temp0.xyz, float3(1.1641444, -0.3914428, -0.8134821)); + // dp3 r1.z, r0, c3 + temp1.z = dot(temp0.xyz, float3(1.1641444, 2.0178256, -0.0012458)); + // mov r1.w, c0.w + temp1.w = float1(1); + // mul r0, r1, v0 + temp0 = temp1 * i.color; + // mov oC0, r0 + out_color = temp0; + // + + return out_color; +} + +// Default_VertexShader2 Vertex_2_0 Has PRES False +struct Default_VertexShader2_Input +{ + float4 position : POSITION; + float4 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +struct Default_VertexShader2_Output +{ + float4 position : POSITION; + float2 texcoord : TEXCOORD; + float4 color : COLOR; +}; + +Default_VertexShader2_Output Default_VertexShader2(Default_VertexShader2_Input i) +{ + Default_VertexShader2_Output o; + // def c0, 2, -2, -1, 1 + // def c1, 0, 1, 0, 0 + // dcl_position v0 + // dcl_texcoord v1 + // dcl_color v2 + // mad oPos.xy, v0, c0, c0.zwzw + o.position.xy = i.position.xy * float2(2, -2) + float2(-1, 1); + // mov oPos.zw, c1.xyxy + o.position.zw = float2(0, 1); + // mov oT0.xy, v1 + o.texcoord = i.texcoord; + // mov oD0, v2 + o.color = i.color; + // + + return o; +} + +technique Default +{ + pass P0 + { + CullMode = 1; + ZEnable = 0; + ZWriteEnable = 0; + AlphaTestEnable = 0; + AlphaBlendEnable = 1; + SrcBlend = 5; + DestBlend = 6; + VertexShader = compile vs_2_0 Default_VertexShader2(); // 17 + PixelShader = compile ps_2_0 Default_PixelShader1(); // 18 + } +} +