I have a 6.22 pro, DirectX 9c, ATI 7500, When I try to use any shader example it gives me an error "w1551 effect is unsupported by hardware". here is the effect:
Code:
 material mat_fur
{
flags = tangent;

effect
"
matrix matWorldViewProj;
matrix matWorld;
matrix matWorldView;

texture entSkin1;

technique fur
{
pass p0
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={1f,1f,1f,1f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
pixelshader=
asm
{
ps.1.4

texld r0, t0 // base map

mul r0, r0, c0
};
}
pass p1
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={2f,2f,2f,2f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};

}
pass p2
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={3f,3f,3f,3f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p3
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={4f,4f,4f,4f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}

pass p4
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={5f,5f,5f,5f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p5
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={6f,6f,6f,6f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p6
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={7f,7f,7f,7f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p7
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={8f,8f,8f,8f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p8
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={9f,9f,9f,9f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p9
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={10f,10f,10f,10f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p10
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={11f,11f,11f,11f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p11
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={12f,12f,12f,12f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p12
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={13f,13f,13f,13f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
pass p13
{
Texture[0] = <entSkin1>;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={14f,14f,14f,14f};

PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0

// get shell distance
mov r1, c4

// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz

// output transformed vertex
m4x4 oPos, r0, c0

// output texture coordinates
mov oT0, v2
};
}
}
";
}

ACTION atifur
{
my.material=mat_fur;
}


then I attach this "atifur" action to an entity and when I run the level The error appears "w1551 the effect is unsupported by hardware" even if I used the -emu parameter. anyhelp will be appreciated.