Mercurial > repos > blastem
changeset 1278:34d3cb05014d
Fix VDP buffer overrun that was causing sprite flickering in some games
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 13 Mar 2017 23:13:24 -0700 |
parents | 78416556ae02 |
children | 996eb76d6da1 |
files | vdp.c |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/vdp.c Mon Mar 13 00:23:58 2017 -0700 +++ b/vdp.c Mon Mar 13 23:13:24 2017 -0700 @@ -2272,6 +2272,7 @@ } else { bg_end_slot = BG_START_SLOT + (256+HORIZ_BORDER)/2; max_draws = MAX_DRAWS_H32_MODE4; + max_sprites = 8; buf_clear_slot = 136; index_reset_slot = 253; index_reset_value = 0; @@ -2312,7 +2313,7 @@ memset(context->linebuf, 0, LINEBUF_SIZE); } else if (context->hslot == index_reset_slot) { context->sprite_index = index_reset_value; - context->slot_counter = max_draws; + context->slot_counter = max_sprites; } else if (context->vcounter == vint_line && context->hslot == vint_slot) { context->flags2 |= FLAG2_VINT_PENDING; context->pending_vint_start = context->cycles;