Hey can anyone help me with the shader that scorpion wrote for A6 and lower versions of A7, this one:

float4x4 matWorldViewProj;
float4 vecSkill1;
float4 vecSkill5;

texture entSkin1;

sampler2D colorMap = sampler_state{Texture=<entSkin1>;};

void bloomVS( in float4 pos :POSITION,
in float2 tex :TEXCOORD0,
out float4 oPos :POSITION,
out float2 oTex :TEXCOORD0)
{
oPos=mul(pos,matWorldViewProj);
oTex=tex;
}

float4 isBlack(uniform float4 lookup)
{
if((lookup.r+lookup.g+lookup.b)/3>vecSkill1.x)
{
return lookup;
}
else
{
return 0;
}
}

float4 bloomPS( in float2 texcrd :TEXCOORD0):COLOR
{
float4 Color = tex2D(colorMap,texcrd);
float4 Blurred = isBlack(Color);
Blurred += isBlack(tex2D(colorMap,texcrd+vecSkill1.y));
Blurred += isBlack(tex2D(colorMap,texcrd-vecSkill1.y));
Blurred += isBlack(tex2D(colorMap,texcrd+vecSkill1.y*2));
Blurred += isBlack(tex2D(colorMap,texcrd-vecSkill1.y*2));

//here you could add 4 more texlookups for the other "side" => looks better,worse performance
/*float2 tempCrd;
tempCrd.x = vecSkill1.y;
tempCrd.y = -vecSkill1.y;
Blurred += isBlack(tex2D(colorMap,texcrd+tempCrd));
tempCrd.x = -vecSkill1.y;
tempCrd.y = vecSkill1.y;
Blurred += isBlack(tex2D(colorMap,texcrd-tempCrd));
tempCrd.x = vecSkill1.y*2;
tempCrd.y = -vecSkill1.y*2;
Blurred += isBlack(tex2D(colorMap,texcrd+tempCrd));
tempCrd.x = -vecSkill1.y*2;
tempCrd.y = vecSkill1.y*2;
Blurred += isBlack(tex2D(colorMap,texcrd-tempCrd));*/

//here you can add as much texlookups as you want...

Blurred/=5;
Color += vecSkill1.z*Blurred;
Color=lerp(Color,(Color.r+Color.g+Color.b)/3,vecSkill5.x)*vecSkill1.w;
Color.w = 1;
return Color;//
}

technique bloom
{
pass p0
{
vertexShader = compile vs_1_0 bloomVS();
pixelShader = compile ps_2_0 bloomPS();
}
}

I cant figure out why it turns out like this:

http://www.freewebs.com/ed1988/New%20Stuff/example.jpg

Any help would be greatly appreciated.