Right border borderblank single pixel sprite gap fix.

This commit is contained in:
Dimitris Panokostas 2019-10-30 21:31:22 +01:00
parent 3a65ecd281
commit 3120f000bb
2 changed files with 4 additions and 6 deletions

View file

@ -779,7 +779,7 @@ static int playfield_start_pre, playfield_end_pre;
static int playfield_start, playfield_end;
static int real_playfield_start, real_playfield_end;
static int playfield_diff;
static int sprite_playfield_start;
static int sprite_playfield_start, sprite_end;
static int may_require_hard_way;
static int linetoscr_diw_start, linetoscr_diw_end;
static int native_ddf_left, native_ddf_right;
@ -863,6 +863,7 @@ static void pfield_init_linetoscr (bool border)
real_playfield_start = playfield_start;
sprite_playfield_start = playfield_start;
real_playfield_end = playfield_end;
sprite_end = linetoscr_diw_end;
// Sprite hpos don't include DIW_DDF_OFFSET and can appear 1 lores pixel
// before first bitplane pixel appears.
@ -1228,7 +1229,7 @@ static uae_u8 render_sprites(int pos, int dualpf, uae_u8 apixel, int aga)
plfmask = (plf_sprite_mask >> maskshift) >> maskshift;
v &= ~plfmask;
/* Extra 1 sprite pixel at DDFSTRT is only possible if at least 1 plane is active */
if ((bplplanecnt > 0 || pos >= sprite_playfield_start) && (v != 0)) {
if ((bplplanecnt > 0 || pos >= sprite_playfield_start) && (pos < sprite_end) && (v != 0)) {
unsigned int vlo, vhi, col;
unsigned int v1 = v & 255;
/* OFFS determines the sprite pair with the highest priority that has