From: Toni Wilen Date: Sat, 20 Nov 2021 17:50:06 +0000 (+0200) Subject: Fix SCCAN2 sprite with zero X-coordinate X-Git-Tag: 4900~16 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=54187e87aa9f3b44663906bbd51d2066e5d42310;p=francis%2Fwinuae.git Fix SCCAN2 sprite with zero X-coordinate --- diff --git a/custom.cpp b/custom.cpp index 37f26e49..5e3fef1c 100644 --- a/custom.cpp +++ b/custom.cpp @@ -4361,7 +4361,8 @@ static void decide_sprites(int hpos, bool usepointx, bool quick) int hw_xp = sprxp >> sprite_buffer_res; int pointx = usepointx && (s->ctl & sprite_sprctlmask) ? 0 : 1; - if (hw_xp <= 0 || hw_xp > maxhpos * 2 + 1) { + // Sprite does not start if X=0 but SSCAN2 sprite does. Don't do X == 0 check here. + if (sprxp < 0 || hw_xp > maxhpos * 2 + 1) { continue; } @@ -4379,7 +4380,7 @@ static void decide_sprites(int hpos, bool usepointx, bool quick) hw_xp = sprxp >> sprite_buffer_res; } - if (hw_xp > last_sprite_point && hw_xp <= point + pointx) { + if (hw_xp > 0 && hw_xp > last_sprite_point && hw_xp <= point + pointx) { add_sprite(&count, i, sprxp, posns, nrs); }