From: Toni Wilen Date: Thu, 10 Jul 2025 16:54:29 +0000 (+0300) Subject: Fixed ECS superhires. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=350c54f3ae5c3db29e162b4bf30a3545d3f8c4f1;p=francis%2Fwinuae.git Fixed ECS superhires. --- diff --git a/genlinetoscr.cpp b/genlinetoscr.cpp index 464b4079..9de277bd 100644 --- a/genlinetoscr.cpp +++ b/genlinetoscr.cpp @@ -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; diff --git a/linetoscr_ecs_shres.cpp b/linetoscr_ecs_shres.cpp index b55633a6..988a354c 100644 --- a/linetoscr_ecs_shres.cpp +++ b/linetoscr_ecs_shres.cpp @@ -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