]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Fixed ECS superhires.
authorToni Wilen <twilen@winuae.net>
Thu, 10 Jul 2025 16:54:29 +0000 (19:54 +0300)
committerToni Wilen <twilen@winuae.net>
Thu, 10 Jul 2025 16:54:29 +0000 (19:54 +0300)
genlinetoscr.cpp
linetoscr_ecs_shres.cpp

index 464b40796f7cc7eb56267309572baa9d581fa58c..9de277bdd1d60ffbb9ff6d9b28ea042c81a842d0 100644 (file)
@@ -1756,6 +1756,7 @@ int main (int argc, char *argv[])
        // ECS SuperHires
        set_outfile("../../linetoscr_ecs_shres.cpp");
 
+       modetype = 1;
        planes = 2;
        res = 2;
        modes = 0;
index b55633a6f815d5ec0ee0bdc4cb632b057d4c59ac..988a354c0704d9688248c547161288218dcba0fd 100644 (file)
@@ -51,6 +51,7 @@ static void lts_ecs_shres_dhires(void)
                                        sv0 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 0);
                        uae_u32 sv1 = 0;
                        if (denise_spr_nr_armeds) {
                                uae_u32 svt;
@@ -59,6 +60,7 @@ static void lts_ecs_shres_dhires(void)
                                        sv1 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 2);
                        if (sv0 || sv1) {
                                get_shres_spr_pix(sv0, sv1, &dpix_val0, &dpix_val2);
                                if (sv0) {
@@ -90,6 +92,9 @@ static void lts_ecs_shres_dhires(void)
                                shiftbpl2();
                                shiftbpl2();
                        }
+                       if (bpldat_copy[0] && (denise_hcounter_cmp & 3) == bplcon1_shift[0]) { 
+                               copybpl2();
+                       }
                        internal_pixel_cnt += 4;
                        sprites_hidden = sprites_hidden2;
                        #ifdef DEBUGGER
@@ -160,6 +165,7 @@ static void lts_ecs_shres_dhires_filtered(void)
                                        sv0 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 0);
                        uae_u32 sv1 = 0;
                        if (denise_spr_nr_armeds) {
                                uae_u32 svt;
@@ -168,6 +174,7 @@ static void lts_ecs_shres_dhires_filtered(void)
                                        sv1 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 2);
                        if (sv0 || sv1) {
                                get_shres_spr_pix(sv0, sv1, &dpix_val0, &dpix_val2);
                                if (sv0) {
@@ -201,6 +208,9 @@ static void lts_ecs_shres_dhires_filtered(void)
                                shiftbpl2();
                                shiftbpl2();
                        }
+                       if (bpldat_copy[0] && (denise_hcounter_cmp & 3) == bplcon1_shift[0]) { 
+                               copybpl2();
+                       }
                        internal_pixel_cnt += 4;
                        sprites_hidden = sprites_hidden2;
                        #ifdef DEBUGGER
@@ -271,6 +281,7 @@ static void lts_ecs_shres_dshres(void)
                                        sv0 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 0);
                        uae_u32 sv1 = 0;
                        if (denise_spr_nr_armeds) {
                                uae_u32 svt;
@@ -279,6 +290,7 @@ static void lts_ecs_shres_dshres(void)
                                        sv1 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 2);
                        if (sv0 || sv1) {
                                get_shres_spr_pix(sv0, sv1, &dpix_val0, &dpix_val2);
                                if (sv0) {
@@ -324,6 +336,9 @@ static void lts_ecs_shres_dshres(void)
                                shiftbpl2();
                                shiftbpl2();
                        }
+                       if (bpldat_copy[0] && (denise_hcounter_cmp & 3) == bplcon1_shift[0]) { 
+                               copybpl2();
+                       }
                        internal_pixel_cnt += 4;
                        sprites_hidden = sprites_hidden2;
                        #ifdef DEBUGGER
@@ -407,6 +422,7 @@ static void lts_ecs_shres_dhires_genlock(void)
                                        sv0 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 0);
                        uae_u32 sv1 = 0;
                        if (denise_spr_nr_armeds) {
                                uae_u32 svt;
@@ -415,6 +431,7 @@ static void lts_ecs_shres_dhires_genlock(void)
                                        sv1 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 2);
                        if (sv0 || sv1) {
                                get_shres_spr_pix(sv0, sv1, &dpix_val0, &dpix_val2);
                                if (sv0) {
@@ -448,6 +465,9 @@ static void lts_ecs_shres_dhires_genlock(void)
                                shiftbpl2();
                                shiftbpl2();
                        }
+                       if (bpldat_copy[0] && (denise_hcounter_cmp & 3) == bplcon1_shift[0]) { 
+                               copybpl2();
+                       }
                        internal_pixel_cnt += 4;
                        sprites_hidden = sprites_hidden2;
                        #ifdef DEBUGGER
@@ -522,6 +542,7 @@ static void lts_ecs_shres_dhires_genlock_filtered(void)
                                        sv0 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 0);
                        uae_u32 sv1 = 0;
                        if (denise_spr_nr_armeds) {
                                uae_u32 svt;
@@ -530,6 +551,7 @@ static void lts_ecs_shres_dhires_genlock_filtered(void)
                                        sv1 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 2);
                        if (sv0 || sv1) {
                                get_shres_spr_pix(sv0, sv1, &dpix_val0, &dpix_val2);
                                if (sv0) {
@@ -567,6 +589,9 @@ static void lts_ecs_shres_dhires_genlock_filtered(void)
                                shiftbpl2();
                                shiftbpl2();
                        }
+                       if (bpldat_copy[0] && (denise_hcounter_cmp & 3) == bplcon1_shift[0]) { 
+                               copybpl2();
+                       }
                        internal_pixel_cnt += 4;
                        sprites_hidden = sprites_hidden2;
                        #ifdef DEBUGGER
@@ -641,6 +666,7 @@ static void lts_ecs_shres_dshres_genlock(void)
                                        sv0 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 0);
                        uae_u32 sv1 = 0;
                        if (denise_spr_nr_armeds) {
                                uae_u32 svt;
@@ -649,6 +675,7 @@ static void lts_ecs_shres_dshres_genlock(void)
                                        sv1 = svt;
                                }
                        }
+                       matchsprites_ecs_shres(cnt + 2);
                        if (sv0 || sv1) {
                                get_shres_spr_pix(sv0, sv1, &dpix_val0, &dpix_val2);
                                if (sv0) {
@@ -698,6 +725,9 @@ static void lts_ecs_shres_dshres_genlock(void)
                                shiftbpl2();
                                shiftbpl2();
                        }
+                       if (bpldat_copy[0] && (denise_hcounter_cmp & 3) == bplcon1_shift[0]) { 
+                               copybpl2();
+                       }
                        internal_pixel_cnt += 4;
                        sprites_hidden = sprites_hidden2;
                        #ifdef DEBUGGER