From a6390b150840bc7c085fffd242e251a83d9955e8 Mon Sep 17 00:00:00 2001 From: lanyi Date: Tue, 28 Dec 2021 10:06:46 +0100 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- basicw3d.fx | 3473 +++ basicw3dholographic.fx | 1942 ++ basicw3dsupporthdr.fx | 3486 +++ bootupscreen.fx | 110 + buildingsallied.fx | 3168 ++ buildingsfactionfrozen.fx | 5429 ++++ buildingsgeneric.fx | 3149 ++ buildingsgenericdamagefill.fx | 3171 ++ buildingsgenericfrozen.fx | 5374 ++++ buildingsjapan.fx | 3168 ++ buildingsjapanbuildup.fx | 3482 +++ buildingssoviet.fx | 3168 ++ connectionline.fx | 194 + cpuparticle.fx | 3753 +++ debug.fx | 529 + decal.fx | 495 + defaultw3d.fx | 42818 ++++++++++++++++++++++++++++ defaultw3dnofognocloud.fx | 39456 +++++++++++++++++++++++++ distortingobject.fx | 481 + errormissing.fx | 73 + fxbeamhit.fx | 485 + fxlightning.fx | 457 + fxprotoncollider.fx | 368 + gpuparticle.fx | 3216 +++ gpuparticledistort.fx | 3430 +++ gpuparticledistortion.fx | 1252 + gpuparticlelit.fx | 1701 ++ gpuparticlelitaccumlight.fx | 1680 ++ gpuparticlenormalmap.fx | 1844 ++ gpuparticleoceandisplacement.fx | 477 + gpuparticleperpendicularbottom.fx | 4673 +++ gpuparticleperpendicularcenter.fx | 4671 +++ gpuparticleunderwater.fx | 3511 +++ gpuparticlexy.fx | 3130 ++ infantry.fx | 4671 +++ infantrychronorift.fx | 3365 +++ infantryformationpreview.fx | 2395 ++ infantryfrozen.fx | 4863 ++++ infantryradiation.fx | 3656 +++ laser.fx | 325 + laseralpha.fx | 302 + laserdistortion.fx | 258 + lightning.fx | 1012 + linerenderers.fx | 1769 ++ muzzleflash.fx | 1045 + normalmapped.fx | 2901 ++ objectsallied.fx | 3045 ++ objectsalliedtread.fx | 3068 ++ objectschronorift.fx | 2382 ++ objectsfactionfrozen.fx | 5242 ++++ objectsformationpreview.fx | 2117 ++ objectsfrozen.fx | 5185 ++++ objectsgeneric.fx | 3024 ++ objectsgenericlightmap.fx | 3160 ++ objectsironcurtain.fx | 2348 ++ objectsjapan.fx | 3045 ++ objectsroads.fx | 3024 ++ objectssoviet.fx | 3045 ++ objectsterrain.fx | 1464 + objectstesla.fx | 4267 +++ occlusion.fx | 165 + ocean.fx | 1214 + oceandisplacement.fx | 983 + oceannovertextexture.fx | 1252 + outlines.fx | 447 + postfx_bloom.fx | 2022 ++ postfx_distortion.fx | 189 + postfx_lineardepth.fx | 116 + postfx_lookuptable.fx | 354 + postfx_msaa.fx | 197 + rain.fx | 465 + render2d.fx | 707 + riverreflection.fx | 340 + riverwater.fx | 651 + rotateenvironmentmap.fx | 486 + shadow.fx | 184 + simple.fx | 182 + simplest.fx | 203 + stream.fx | 756 + swarmparticle.fx | 326 + terrain.fx | 6054 ++++ terraintracks.fx | 220 + tracer.fx | 1001 + trail.fx | 286 + tree.fx | 3473 +++ treesway.fx | 1692 ++ underwaterdeferred.fx | 814 + video.fx | 157 + 88 files changed, 253728 insertions(+) create mode 100644 basicw3d.fx create mode 100644 basicw3dholographic.fx create mode 100644 basicw3dsupporthdr.fx create mode 100644 bootupscreen.fx create mode 100644 buildingsallied.fx create mode 100644 buildingsfactionfrozen.fx create mode 100644 buildingsgeneric.fx create mode 100644 buildingsgenericdamagefill.fx create mode 100644 buildingsgenericfrozen.fx create mode 100644 buildingsjapan.fx create mode 100644 buildingsjapanbuildup.fx create mode 100644 buildingssoviet.fx create mode 100644 connectionline.fx create mode 100644 cpuparticle.fx create mode 100644 debug.fx create mode 100644 decal.fx create mode 100644 defaultw3d.fx create mode 100644 defaultw3dnofognocloud.fx create mode 100644 distortingobject.fx create mode 100644 errormissing.fx create mode 100644 fxbeamhit.fx create mode 100644 fxlightning.fx create mode 100644 fxprotoncollider.fx create mode 100644 gpuparticle.fx create mode 100644 gpuparticledistort.fx create mode 100644 gpuparticledistortion.fx create mode 100644 gpuparticlelit.fx create mode 100644 gpuparticlelitaccumlight.fx create mode 100644 gpuparticlenormalmap.fx create mode 100644 gpuparticleoceandisplacement.fx create mode 100644 gpuparticleperpendicularbottom.fx create mode 100644 gpuparticleperpendicularcenter.fx create mode 100644 gpuparticleunderwater.fx create mode 100644 gpuparticlexy.fx create mode 100644 infantry.fx create mode 100644 infantrychronorift.fx create mode 100644 infantryformationpreview.fx create mode 100644 infantryfrozen.fx create mode 100644 infantryradiation.fx create mode 100644 laser.fx create mode 100644 laseralpha.fx create mode 100644 laserdistortion.fx create mode 100644 lightning.fx create mode 100644 linerenderers.fx create mode 100644 muzzleflash.fx create mode 100644 normalmapped.fx create mode 100644 objectsallied.fx create mode 100644 objectsalliedtread.fx create mode 100644 objectschronorift.fx create mode 100644 objectsfactionfrozen.fx create mode 100644 objectsformationpreview.fx create mode 100644 objectsfrozen.fx create mode 100644 objectsgeneric.fx create mode 100644 objectsgenericlightmap.fx create mode 100644 objectsironcurtain.fx create mode 100644 objectsjapan.fx create mode 100644 objectsroads.fx create mode 100644 objectssoviet.fx create mode 100644 objectsterrain.fx create mode 100644 objectstesla.fx create mode 100644 occlusion.fx create mode 100644 ocean.fx create mode 100644 oceandisplacement.fx create mode 100644 oceannovertextexture.fx create mode 100644 outlines.fx create mode 100644 postfx_bloom.fx create mode 100644 postfx_distortion.fx create mode 100644 postfx_lineardepth.fx create mode 100644 postfx_lookuptable.fx create mode 100644 postfx_msaa.fx create mode 100644 rain.fx create mode 100644 render2d.fx create mode 100644 riverreflection.fx create mode 100644 riverwater.fx create mode 100644 rotateenvironmentmap.fx create mode 100644 shadow.fx create mode 100644 simple.fx create mode 100644 simplest.fx create mode 100644 stream.fx create mode 100644 swarmparticle.fx create mode 100644 terrain.fx create mode 100644 terraintracks.fx create mode 100644 tracer.fx create mode 100644 trail.fx create mode 100644 tree.fx create mode 100644 treesway.fx create mode 100644 underwaterdeferred.fx create mode 100644 video.fx 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 + } +} +