02-28-2009, 04:27 PM
O'k. If you don't mind, try to fix by messing-up with constants.
In zerogs.cpp, in function SetTexVariablesInt there is code:
v.y = 1.0f;
v.x = (fpageint-(float)pmemtarg->realy/(float)pmemtarg->widthmult+0.5f);//*v.y;
v.z = (float)texwidth;
if( !(g_nPixelShaderVer & SHADER_ACCURATE) || bUseBilinear ) {
if (!PSMT_ISHALF(tex0.psm))
v.w = 0;
else
v.w = 0.25f;
}
else
v.w = 0.5f;
cgGLSetParameter4fv(pfragment->fPageOffset, v);
It's bilinear settings, you could play with v.w and v.w a little. Try to change v.w to values such as -0,5, +1 etc. Mainly, this code is o'k, but a big unperfect.
In zerogs.cpp, in function SetTexVariablesInt there is code:
v.y = 1.0f;
v.x = (fpageint-(float)pmemtarg->realy/(float)pmemtarg->widthmult+0.5f);//*v.y;
v.z = (float)texwidth;
if( !(g_nPixelShaderVer & SHADER_ACCURATE) || bUseBilinear ) {
if (!PSMT_ISHALF(tex0.psm))
v.w = 0;
else
v.w = 0.25f;
}
else
v.w = 0.5f;
cgGLSetParameter4fv(pfragment->fPageOffset, v);
It's bilinear settings, you could play with v.w and v.w a little. Try to change v.w to values such as -0,5, +1 etc. Mainly, this code is o'k, but a big unperfect.