From e8698a9c0c6b84096f863c17b99d9bc93a08abdb Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Wed, 15 Apr 2015 09:40:06 +0200 Subject: [PATCH] gsdx hack: hole in vertex position also appears in !FST projection Fix various black vertical line regression with UserHacks_align_sprite_X --- plugins/GSdx/GSRendererHW.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/GSdx/GSRendererHW.cpp b/plugins/GSdx/GSRendererHW.cpp index bd271cca60..cfa2604045 100644 --- a/plugins/GSdx/GSRendererHW.cpp +++ b/plugins/GSdx/GSRendererHW.cpp @@ -461,7 +461,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) && (PRIM->FST)) { + if ((m_upscale_multiplier > 1) && (m_vt.m_primclass == GS_SPRITE_CLASS)) { // TODO: It could be a good idea to check context->CLAMP.WMS/WMT values on the following hack size_t count = m_vertex.next; @@ -487,11 +487,15 @@ void GSRendererHW::Draw() } } - if ((m_userhacks_round_sprite_offset > 1) || (m_userhacks_round_sprite_offset == 1 && !m_vt.IsLinear())) { - if (m_vt.IsLinear()) - RoundSpriteOffset(); - else - RoundSpriteOffset(); + if (PRIM->FST) { + if ((m_userhacks_round_sprite_offset > 1) || (m_userhacks_round_sprite_offset == 1 && !m_vt.IsLinear())) { + if (m_vt.IsLinear()) + RoundSpriteOffset(); + else + RoundSpriteOffset(); + } + } else { + ; // vertical line in Yakuza (note check m_userhacks_align_sprite_X behavior) } }