Mercurial > repos > blastem
changeset 38:898e3d035f42
Implement sprite index >= sprite limit triggers sprite limit behavior
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 09 Dec 2012 00:03:15 -0800 |
parents | cd59519b26d9 |
children | 3c69319269ef |
files | vdp.c vdp.h |
diffstat | 2 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/vdp.c Sat Dec 08 23:49:51 2012 -0800 +++ b/vdp.c Sun Dec 09 00:03:15 2012 -0800 @@ -59,6 +59,15 @@ line += 1; line &= 0xFF; context->sprite_index &= 0x7F; + if (context->latched_mode & BIT_H40) { + if (context->sprite_index >= MAX_SPRITES_FRAME) { + context->sprite_index = 0; + return; + } + } else if(context->sprite_index >= MAX_SPRITES_FRAME_H32) { + context->sprite_index = 0; + return; + } //TODO: Read from SAT cache rather than from VRAM uint16_t sat_address = (context->regs[REG_SAT] & 0x7F) << 9; uint16_t address = context->sprite_index * 8 + sat_address;