summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-05-11 20:33:31 -0700
committerMichael Pavone <pavone@retrodev.com>2017-05-11 20:33:31 -0700
commit91c8e9c9c93625d6812abf1e1de0a150b7048e8a (patch)
treec594f7c479881003e70030dee4fb74b3ccefc0b7
parent217697e9a74ad442b40a079fe9c664d87eac9002 (diff)
Fix regression in Mode 4 sprite rendering
-rw-r--r--vdp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/vdp.c b/vdp.c
index d7b98db..b6b87db 100644
--- a/vdp.c
+++ b/vdp.c
@@ -586,8 +586,7 @@ static void scan_sprite_table(uint32_t line, vdp_context * context)
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 @@ static void scan_sprite_table(uint32_t line, vdp_context * context)
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 @@ static void scan_sprite_table_mode4(vdp_context * context)
}
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 @@ static void scan_sprite_table_mode4(vdp_context * context)
}
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++;
}