gsdx hack: Better rounding fix letter in ace combat and line in tekken

Tekken is broken with setting UserHacks_round_sprite_offset = 2 use 1 instead.
=> game use upscaling internaly so my rounding of coordinate break everything

Yakuza uses float coordinate but this hack only correct the integer coordinate
=> the solution will be to add a dedicated hack for this game.

Colin3 got a regression but I don't know when...
This commit is contained in:
Gregory Hainaut 2015-04-12 10:23:55 +02:00
parent 06ee41957e
commit c4fef0256e
1 changed files with 3 additions and 3 deletions

View File

@ -352,7 +352,7 @@ void GSRendererHW::Draw()
context->ZBUF.ZMSK = zm != 0;
// A couple of hack to avoid upscaling issue. So far it seems to impacts only sprite without linear filtering
if ((m_upscale_multiplier > 1) && (m_vt.m_primclass == GS_SPRITE_CLASS) /*&& !m_vt.IsLinear()*/) {
if ((m_upscale_multiplier > 1) && (m_vt.m_primclass == GS_SPRITE_CLASS) && (PRIM->FST)) {
// TODO: It could be a good idea to check context->CLAMP.WMS/WMT values on the following hack
size_t count = m_vertex.next;
@ -446,7 +446,7 @@ void GSRendererHW::Draw()
// Minus half for t1 case might be too much
if (tx0 <= tx1) {
v[i].U = tx0 + half + 1;
v[i+1].U = tx1 - half + 1 + 16;
v[i+1].U = tx1 - half + 1 + 15;
} else {
v[i].U = tx0 + 15;
v[i+1].U = tx1 + 15 + 16;
@ -455,7 +455,7 @@ void GSRendererHW::Draw()
#if 1
if (ty0 <= ty1) {
v[i].V = ty0 + half + 1;
v[i+1].V = ty1 - half + 1 + 16;
v[i+1].V = ty1 - half + 1 + 15;
} else {
v[i].V = ty0 + 15;
v[i+1].V = ty1 + 15 + 16;