diff vdp.h @ 1335:26e72126f9d1

Fixes to sprite phase 2 so that sprite X reads use the exact same slot as on hardware in the case that there are fewer than the max number of sprites on each line. Re-read sprite Y from SAT cache during phase 2 and properly mask the calculated row. Fixes remaining issues with spinning cube scene in Overdrive 2.
author Michael Pavone <pavone@retrodev.com>
date Thu, 27 Apr 2017 23:08:49 -0700
parents 69c25e1188e5
children 35e6a93b4586
line wrap: on
line diff
--- a/vdp.h	Thu Apr 27 09:32:21 2017 -0700
+++ b/vdp.h	Thu Apr 27 23:08:49 2017 -0700
@@ -179,11 +179,6 @@
 	uint16_t    hscroll_b;
 	uint16_t    h40_lines;
 	uint16_t    output_lines;
-	uint8_t     hslot; //hcounter/2
-	uint8_t	    sprite_index;
-	uint8_t     sprite_draws;
-	int8_t      slot_counter;
-	int8_t      cur_slot;
 	sprite_draw sprite_draw_list[MAX_DRAWS];
 	sprite_info sprite_info_list[MAX_SPRITES_LINE];
 	uint8_t     sat_cache[SAT_CACHE_SIZE];
@@ -192,6 +187,13 @@
 	uint16_t    hv_latch;
 	uint16_t    prefetch;
 	uint16_t    test_port;
+	uint8_t     hslot; //hcounter/2
+	uint8_t	    sprite_index;
+	uint8_t     sprite_draws;
+	int8_t      slot_counter;
+	int8_t      cur_slot;
+	uint8_t     max_sprites_frame;
+	uint8_t     max_sprites_line;
 	uint8_t     fetch_tmp[2];
 	uint8_t     v_offset;
 	uint8_t     dma_cd;