# HG changeset patch # User Michael Pavone # Date 1494560011 25200 # Node ID 3716b90d3470ea097e38a333cf5dd6f97342e316 # Parent 5ee19c72fa958beb5c0f27995f9b407056e0f8ea Fix regression in Mode 4 sprite rendering diff -r 5ee19c72fa95 -r 3716b90d3470 vdp.c --- a/vdp.c Thu May 11 08:01:10 2017 -0700 +++ b/vdp.c Thu May 11 20:33:31 2017 -0700 @@ -586,8 +586,7 @@ if (y <= line && line < (y + height)) { //printf("Sprite %d at y: %d with height %d is on line %d\n", context->sprite_index, y, height, line); context->sprite_info_list[context->slot_counter].size = context->sat_cache[address+2]; - context->sprite_info_list[context->slot_counter].index = context->sprite_index; - context->sprite_info_list[context->slot_counter++].y = y-ymin; + context->sprite_info_list[context->slot_counter++].index = context->sprite_index; } context->sprite_index = context->sat_cache[address+3] & 0x7F; if (context->sprite_index && ((uint8_t)context->slot_counter) < context->max_sprites_line) @@ -604,8 +603,7 @@ if (y <= line && line < (y + height)) { //printf("Sprite %d at y: %d with height %d is on line %d\n", context->sprite_index, y, height, line); context->sprite_info_list[context->slot_counter].size = context->sat_cache[address+2]; - context->sprite_info_list[context->slot_counter].index = context->sprite_index; - context->sprite_info_list[context->slot_counter++].y = y-ymin; + context->sprite_info_list[context->slot_counter++].index = context->sprite_index; } context->sprite_index = context->sat_cache[address+3] & 0x7F; } @@ -635,6 +633,7 @@ } context->sprite_info_list[--(context->slot_counter)].size = size; context->sprite_info_list[context->slot_counter].index = context->sprite_index; + context->sprite_info_list[context->slot_counter].y = y; } context->sprite_index++; } @@ -653,6 +652,7 @@ } context->sprite_info_list[--(context->slot_counter)].size = size; context->sprite_info_list[context->slot_counter].index = context->sprite_index; + context->sprite_info_list[context->slot_counter].y = y; } context->sprite_index++; }