//Pixel Shader for TEV stages //1 TEV stages, 1 texgens, XXX IND stages uniform sampler2D samp0 : register(s0), samp1 : register(s1), samp2 : register(s2), samp3 : register(s3), samp4 : register(s4), samp5 : register(s5), samp6 : register(s6), samp7 : register(s7); uniform float4 color[4] : register(c0); uniform float4 k[4] : register(c4); uniform float4 alphaRef[1] : register(c8); uniform float4 texdim[8] : register(c9); uniform float4 czbias[2] : register(c17); uniform float4 cindscale[2] : register(c19); uniform float4 cindmtx[6] : register(c21); uniform float4 cfog[3] : register(c27); void main( out float4 ocol0 : COLOR0, in float4 rawpos : VPOS, in float4 colors_0 : COLOR0, in float4 colors_1 : COLOR1, in float3 uv0 : TEXCOORD0, in float4 clipPos : TEXCOORD1 ) { float4 c0 = color[1], c1 = color[2], c2 = color[3], prev = float4(0.0f, 0.0f, 0.0f, 0.0f), textemp = float4(0.0f, 0.0f, 0.0f, 0.0f), rastemp = float4(0.0f, 0.0f, 0.0f, 0.0f), konsttemp = float4(0.0f, 0.0f, 0.0f, 0.0f); float3 comp16 = float3(1.0f, 255.0f, 0.0f), comp24 = float3(1.0f, 255.0f, 255.0f*255.0f); float4 alphabump=float4(0.0f,0.0f,0.0f,0.0f); float3 tevcoord=float3(0.0f, 0.0f, 0.0f); float2 wrappedcoord=float2(0.0f,0.0f), tempcoord=float2(0.0f,0.0f); float4 cc0=float4(0.0f,0.0f,0.0f,0.0f), cc1=float4(0.0f,0.0f,0.0f,0.0f); float4 cc2=float4(0.0f,0.0f,0.0f,0.0f), cprev=float4(0.0f,0.0f,0.0f,0.0f); float4 crastemp=float4(0.0f,0.0f,0.0f,0.0f),ckonsttemp=float4(0.0f,0.0f,0.0f,0.0f); clipPos = float4(rawpos.x, rawpos.y, clipPos.z, clipPos.w); uv0.xy = uv0.xy * texdim[0].zw; // TEV stage 0 tevcoord.xy = uv0.xy; textemp=tex2D(samp0,tevcoord.xy * texdim[0].xy).rgba; // color combine prev.rgb = saturate((textemp.rgb)+float3(0.0f, 0.0f, 0.0f)); // alpha combine prev.a = saturate(textemp.a+float4(0.0f, 0.0f, 0.0f, 0.0f).a); // TEV done prev.rgb = prev.rgb; prev.a = prev.a; prev = frac(4.0f + prev * (255.0f/256.0f)) * (256.0f/255.0f); if(!( (prev.a > alphaRef[0].r - (0.25f/255.0f)) || (false))){ocol0 = 0; discard;return;} ocol0 = prev; }