Im glad its not just me! What OS do you have and what make of GeForce?
-------------------
OK just for the record this is a fix for the Geforce 4 only, I have no idea (currently) what effect it has on other cards.
-------------------
FILE: GrD3DRender.cpp
FUNC: gr_d3d_aabitmap_ex_internal
LINE: 1485 (aprox)
OLD: (replace this)
// Rendition
if ( D3d_rendition_uvs ) {
u0 = u_scale*(i2fl(sx)+0.5f)/i2fl(bw);
v0 = v_scale*(i2fl(sy)+0.5f)/i2fl(bh);
u1 = u_scale*(i2fl(sx+w)+0.5f)/i2fl(bw);
v1 = v_scale*(i2fl(sy+h)+0.5f)/i2fl(bh);
} else {
u0 = u_scale*i2fl(sx)/i2fl(bw);
v0 = v_scale*i2fl(sy)/i2fl(bh);
u1 = u_scale*i2fl(sx+w)/i2fl(bw);
v1 = v_scale*i2fl(sy+h)/i2fl(bh);
}
MY CHANGES: (with this)
// Rendition RANDOM_TIGER GEFORCE 4 FIX
if (D3d_rendition_uvs )
{
// This top bit is the same
u0 = u_scale*(i2fl(sx)+0.5f)/i2fl(bw);
v0 = v_scale*(i2fl(sy)+0.5f)/i2fl(bh);
u1 = u_scale*(i2fl(sx+w)+0.5f)/i2fl(bw);
v1 = v_scale*(i2fl(sy+h)+0.5f)/i2fl(bh);
}
else
{
// However this bit needs to be -0.5
u0 = u_scale*(i2fl(sx)-0.5f)/i2fl(bw);
v0 = v_scale*(i2fl(sy)-0.5f)/i2fl(bh);
u1 = u_scale*(i2fl(sx+w)-0.5f)/i2fl(bw);
v1 = v_scale*(i2fl(sy+h)-0.5f)/i2fl(bh);
}
-------------------
I hope this helps.
If this doesnt work or you have problems give me a shout.
Let me know if it does work out too! Watch the hall anims, you may not notice but they are slightly out as well (before fix).